packages feed

vulkan-api 1.1.0.0 → 1.1.1.0

raw patch · 784 files changed

+156293/−127493 lines, 784 filesdep −ghc-prim

Dependencies removed: ghc-prim

This diff is very large; some files are shown as “too large to diff”. Download the raw patch for the complete diff.

Files

+ cbits/vulkan_loader.c view
@@ -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;+}
include/vulkan/vulkan_core.h view
@@ -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
+ include/vulkan_loader.h view
@@ -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
src-gen/Graphics/Vulkan/Core_1_0.hsc view
@@ -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 #-}
src-gen/Graphics/Vulkan/Core_1_1.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_core_properties.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_blend_operation_advanced.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs view
@@ -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 
+ src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs view
@@ -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)
src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_dma_buf.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_external_memory_host.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_EXT_sample_locations.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_EXT_sampler_filter_minmax.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_IMG_filter_cubic.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_push_descriptor.hs view
@@ -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 ::
src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_swapchain.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_NVX_device_generated_commands.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NVX_multiview_per_view_attributes.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs view
@@ -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 
+ src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs view
@@ -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
src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs view
@@ -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 
src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs view
@@ -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 
src-gen/Graphics/Vulkan/Types/Defines.hs view
@@ -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))
+ src-gen/Graphics/Vulkan/Types/Enum/AccessFlags.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Attachment.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Blend.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/BorderColor.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Buffer.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/ChromaLocation.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/Color.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Command.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/CompareOp.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/ComponentSwizzle.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/CompositeAlphaFlagsKHR.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/ConservativeRasterizationModeEXT.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/CoverageModulationModeNV.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/CullModeFlags.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Debug.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/DependencyFlags.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Descriptor.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/Device.hs view
@@ -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)))
+ src-gen/Graphics/Vulkan/Types/Enum/DiscardRectangleModeEXT.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Display.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/DynamicState.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/External.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Fence.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Filter.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Format.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/FramebufferCreateFlagBits.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/FrontFace.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Image.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/IndexType.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/IndirectCommands.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/InstanceCreateFlagBits.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/InternalAllocationType.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/LogicOp.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Memory.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Object.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/PeerMemoryFeatureFlag.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/PhysicalDeviceType.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Pipeline.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/PointClippingBehavior.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/PolygonMode.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/PresentModeKHR.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/PrimitiveTopology.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Query.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Queue.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/RasterizationOrderAMD.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/RenderPassCreateFlagBits.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/Result.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/SampleCountFlags.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Sampler.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/SemaphoreImportFlag.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Shader.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/SharingMode.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Sparse.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Stencil.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/StructureType.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/SubgroupFeatureFlags.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/Subpass.hs view
@@ -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)))
+ src-gen/Graphics/Vulkan/Types/Enum/Surface.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/SwapchainCreateFlagsKHR.hs view
@@ -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)))
+ src-gen/Graphics/Vulkan/Types/Enum/SystemAllocationScope.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/TessellationDomainOrigin.hs view
@@ -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)
+ src-gen/Graphics/Vulkan/Types/Enum/ValidationC.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/VertexInputRate.hs view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Enum/ViewportCoordinateSwizzleNV.hs view
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkAccessFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentDescriptionFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentLoadOp.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentStoreOp.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkBlendFactor.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkBlendOp.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkBlendOverlapEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkBorderColor.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkBufferCreateFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkBufferUsageFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkBufferViewCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkChromaLocation.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkChromaLocationKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkColorComponentFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkColorSpaceKHR.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferLevel.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferResetFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferUsageFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCommandPoolCreateFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCommandPoolResetFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCompareOp.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkComponentSwizzle.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCompositeAlphaFlagsKHR.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkConservativeRasterizationModeEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCoverageModulationModeNV.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkCullModeFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDebugReportFlagsEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDebugReportObjectTypeEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDebugUtilsMessageSeverityFlagsEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDebugUtilsMessageTypeFlagsEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDependencyFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorPoolCreateFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorSetLayoutCreateFlags.hs
@@ -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)))
− src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorUpdateTemplateType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorUpdateTemplateTypeKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkDeviceCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkDeviceEventTypeEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDeviceGroupPresentModeFlagsKHR.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDeviceQueueCreateFlags.hs
@@ -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)))
− src-gen/Graphics/Vulkan/Types/Enum/VkDiscardRectangleModeEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDisplayEventTypeEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDisplayPlaneAlphaFlagsKHR.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDisplayPowerStateEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkDynamicState.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceFeatureFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceFeatureFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceHandleTypeFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceHandleTypeFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlagsNV.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlagsNV.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreFeatureFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreFeatureFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreHandleTypeFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreHandleTypeFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkFenceCreateFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkFenceImportFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkFenceImportFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkFilter.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkFormat.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkFormatFeatureFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkFramebufferCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkFrontFace.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkImageAspectFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkImageCreateFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkImageLayout.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkImageTiling.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkImageType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkImageUsageFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkImageViewType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkIndexType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkIndirectCommandsLayoutUsageFlagsNVX.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkIndirectCommandsTokenTypeNVX.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkInstanceCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkInternalAllocationType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkLogicOp.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkMemoryAllocateFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkMemoryAllocateFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkMemoryHeapFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkMemoryPropertyFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkObjectEntryTypeNVX.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkObjectEntryUsageFlagsNVX.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkObjectType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPeerMemoryFeatureFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPeerMemoryFeatureFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPhysicalDeviceType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineBindPoint.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCacheCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCacheHeaderVersion.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineColorBlendStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCreateFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineDepthStencilStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineDynamicStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineInputAssemblyStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineLayoutCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineMultisampleStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineRasterizationStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineShaderStageCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineStageFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineTessellationStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineVertexInputStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPipelineViewportStateCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPointClippingBehavior.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPointClippingBehaviorKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkPolygonMode.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPresentModeKHR.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkPrimitiveTopology.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkQueryControlFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkQueryPipelineStatisticFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkQueryPoolCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkQueryResultFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkQueryType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkQueueFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkQueueGlobalPriorityEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkRasterizationOrderAMD.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkRenderPassCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkResult.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkSampleCountFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSamplerAddressMode.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSamplerCreateFlagBits.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkSamplerMipmapMode.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSamplerReductionModeEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrModelConversion.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrModelConversionKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrRange.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrRangeKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkSemaphoreImportFlagBitsKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkSemaphoreImportFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkShaderInfoTypeAMD.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkShaderStageFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSharingMode.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSparseImageFormatFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSparseMemoryBindFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkStencilFaceFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkStencilOp.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkStructureType.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSubgroupFeatureFlags.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSubpassContents.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSubpassDescriptionFlags.hs
@@ -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)))
− src-gen/Graphics/Vulkan/Types/Enum/VkSurfaceCounterFlagsEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSurfaceTransformFlagsKHR.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkSwapchainCreateFlagsKHR.hs
@@ -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)))
− src-gen/Graphics/Vulkan/Types/Enum/VkSystemAllocationScope.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkTessellationDomainOrigin.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkTessellationDomainOriginKHR.hs
@@ -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)
− src-gen/Graphics/Vulkan/Types/Enum/VkValidationCacheHeaderVersionEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkValidationCheckEXT.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkVertexInputRate.hs
@@ -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
− src-gen/Graphics/Vulkan/Types/Enum/VkViewportCoordinateSwizzleNV.hs
@@ -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
src-gen/Graphics/Vulkan/Types/Funcpointers.hs view
@@ -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 ->
+ src-gen/Graphics/Vulkan/Types/Struct/AcquireNextImageInfoKHR.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/ApplicationInfo.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Attachment.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Command.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/CopyDescriptorSet.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsObjectNameInfoEXT.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/DedicatedAllocation.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Struct/Device.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/DispatchIndirectCommand.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Display.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/EventCreateInfo.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Export.hsc view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Extent.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/External.hsc view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Struct/Fence.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Struct/FramebufferCreateInfo.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Image.hsc view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Struct/Import.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/IndirectCommands.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/InputAttachmentAspectReference.hsc view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/MappedMemoryRange.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Memory.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/MultisamplePropertiesEXT.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/ObjectTable.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Offset.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PastPresentationTimingGOOGLE.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PhysicalDeviceFeatures.hsc view
@@ -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+                                                                                                                                                                                                                                                                                                                                                        '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformAndroidKhr.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformIosMvk.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformMacosMvk.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformMirKhr.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformViNn.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformWaylandKhr.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformWin32Khr.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformXcbKhr.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PlatformXlibKhr.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Present.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/ProtectedSubmitInfo.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/PushConstantRange.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/QueryPoolCreateInfo.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/QueueFamilyProperties.hsc view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Struct/Rect.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/RefreshCycleDurationGOOGLE.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Sampler.hsc view
@@ -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
+ src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/SharedPresentSurfaceCapabilitiesKHR.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Subpass.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Surface.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc view
@@ -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+                                                                                                                          '}'
+ src-gen/Graphics/Vulkan/Types/Struct/TextureLODGatherFormatPropertiesAMD.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/VertexInput.hsc view
@@ -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 '}'
+ src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc view
@@ -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 '}'
− src-gen/Graphics/Vulkan/Types/Struct/VkAcquireNextImageInfoKHR.hsc
@@ -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 '}'
− src-gen/Graphics/Vulkan/Types/Struct/VkAllocationCallbacks.hsc
@@ -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 '}'
− src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferFormatPropertiesANDROID.hsc
@@ -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 '}'
− src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferPropertiesANDROID.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferUsageANDROID.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkAndroidSurfaceCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkApplicationInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentDescription.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentReference.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentSampleLocationsEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryDeviceGroupInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryDeviceGroupInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryDeviceGroupInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryDeviceGroupInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemorySwapchainInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindImagePlaneMemoryInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindImagePlaneMemoryInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBindSparseInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBufferCopy.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBufferCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBufferImageCopy.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryBarrier.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryRequirementsInfo2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryRequirementsInfo2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkBufferViewCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkClearAttachment.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkClearColorValue.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkClearDepthStencilValue.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkClearRect.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkClearValue.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkCmdProcessCommandsInfoNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkCmdReserveSpaceForCommandsInfoNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferAllocateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferBeginInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferInheritanceInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkCommandPoolCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkComponentMapping.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkComputePipelineCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkCopyDescriptorSet.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkD3D12FenceSubmitInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerMarkerInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerObjectNameInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerObjectTagInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugReportCallbackCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsLabelEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsMessengerCallbackDataEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsMessengerCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsObjectNameInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsObjectTagInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationBufferCreateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationImageCreateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationMemoryAllocateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorBufferInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorImageInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorPoolCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorPoolSize.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetAllocateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutBinding.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutSupport.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutSupportKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateEntry.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateEntryKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceEventInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGeneratedCommandsFeaturesNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGeneratedCommandsLimitsNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupBindSparseInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupBindSparseInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupCommandBufferBeginInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupCommandBufferBeginInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupDeviceCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupDeviceCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupPresentCapabilitiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupPresentInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupRenderPassBeginInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupRenderPassBeginInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSubmitInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSubmitInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSwapchainCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueGlobalPriorityCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueInfo2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDispatchIndirectCommand.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayEventInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModeCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModeParametersKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModePropertiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPlaneCapabilitiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPlanePropertiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPowerInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPresentInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPropertiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDisplaySurfaceCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDrawIndexedIndirectCommand.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkDrawIndirectCommand.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkEventCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryWin32HandleInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExtensionProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExtent2D.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExtent3D.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalBufferProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalBufferPropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalFenceProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalFencePropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalFormatANDROID.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatPropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatPropertiesNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryBufferCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryBufferCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryPropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalSemaphoreProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkExternalSemaphorePropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkFenceCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkFenceGetFdInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkFenceGetWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkFramebufferCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkGraphicsPipelineCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkHdrMetadataEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkIOSSurfaceCreateInfoMVK.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageBlit.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageCopy.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatListCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryBarrier.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryRequirementsInfo2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryRequirementsInfo2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImagePlaneMemoryRequirementsInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImagePlaneMemoryRequirementsInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageResolve.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageSparseMemoryRequirementsInfo2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageSparseMemoryRequirementsInfo2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresource.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresourceLayers.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresourceRange.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageSwapchainCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageViewCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageViewUsageCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImageViewUsageCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportAndroidHardwareBufferInfoANDROID.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportFenceFdInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportFenceWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryFdInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryHostPointerInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryWin32HandleInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportSemaphoreFdInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkImportSemaphoreWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsLayoutCreateInfoNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsLayoutTokenNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsTokenNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkInputAttachmentAspectReference.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkInputAttachmentAspectReferenceKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkInstanceCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkLayerProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMacOSSurfaceCreateInfoMVK.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMappedMemoryRange.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateFlagsInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateFlagsInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryBarrier.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedAllocateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedAllocateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedRequirements.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedRequirementsKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryFdPropertiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetAndroidHardwareBufferInfoANDROID.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetFdInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryHeap.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryHostPointerPropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryType.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMemoryWin32HandlePropertiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMirSurfaceCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkMultisamplePropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableCreateInfoNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableDescriptorSetEntryNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableEntryNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableIndexBufferEntryNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkObjectTablePipelineEntryNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkObjectTablePushConstantEntryNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableVertexBufferEntryNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkOffset2D.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkOffset3D.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPastPresentationTimingGOOGLE.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevice16BitStorageFeatures.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevice16BitStorageFeaturesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceDiscardRectanglePropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalBufferInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalBufferInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalFenceInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalFenceInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalImageFormatInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalImageFormatInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalSemaphoreInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalSemaphoreInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceGroupProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceGroupPropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceIDProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceIDPropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceImageFormatInfo2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceImageFormatInfo2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceLimits.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMaintenance3Properties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMaintenance3PropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewFeatures.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewFeaturesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewPropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePointClippingProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePointClippingPropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProtectedMemoryFeatures.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProtectedMemoryProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePushDescriptorPropertiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSampleLocationsPropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerYcbcrConversionFeatures.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceShaderDrawParameterFeatures.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseImageFormatInfo2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseImageFormatInfo2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSubgroupProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSurfaceInfo2KHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVariablePointerFeatures.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVariablePointerFeaturesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCacheCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendAdvancedStateCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendAttachmentState.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCoverageModulationStateCreateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCoverageToColorStateCreateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDepthStencilStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDiscardRectangleStateCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDynamicStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineInputAssemblyStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineLayoutCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineMultisampleStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationConservativeStateCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationStateRasterizationOrderAMD.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineSampleLocationsStateCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineShaderStageCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationDomainOriginStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationDomainOriginStateCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineVertexInputDivisorStateCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineVertexInputStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportStateCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportSwizzleStateCreateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportWScalingStateCreateInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPresentInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPresentRegionKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPresentRegionsKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPresentTimeGOOGLE.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPresentTimesInfoGOOGLE.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkProtectedSubmitInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkPushConstantRange.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkQueryPoolCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRect2D.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRectLayerKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRefreshCycleDurationGOOGLE.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassBeginInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassInputAttachmentAspectCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassInputAttachmentAspectCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassMultiviewCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassMultiviewCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassSampleLocationsBeginInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSampleLocationEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSampleLocationsInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSamplerCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSamplerReductionModeCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionCreateInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionImageFormatProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionImageFormatPropertiesKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionInfoKHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreGetFdInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreGetWin32HandleInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkShaderModuleCreateInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkShaderModuleValidationCacheCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkShaderResourceUsageAMD.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkShaderStatisticsInfoAMD.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSharedPresentSurfaceCapabilitiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseBufferMemoryBindInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryBind.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryBindInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements2.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements2KHR.hs

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageOpaqueMemoryBindInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSparseMemoryBind.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSpecializationInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSpecializationMapEntry.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkStencilOpState.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSubmitInfo.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSubpassDependency.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSubpassDescription.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSubpassSampleLocationsEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSubresourceLayout.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilities2EXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilities2KHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilitiesKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceFormat2KHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceFormatKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSwapchainCounterCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkSwapchainCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkTextureLODGatherFormatPropertiesAMD.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkValidationCacheCreateInfoEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkValidationFlagsEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputAttributeDescription.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputBindingDescription.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputBindingDivisorDescriptionEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkViSurfaceCreateInfoNN.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkViewport.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkViewportSwizzleNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkViewportWScalingNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkWaylandSurfaceCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkWin32KeyedMutexAcquireReleaseInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkWin32KeyedMutexAcquireReleaseInfoNV.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkWin32SurfaceCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkWriteDescriptorSet.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkXYColorEXT.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkXcbSurfaceCreateInfoKHR.hsc

file too large to diff

− src-gen/Graphics/Vulkan/Types/Struct/VkXlibSurfaceCreateInfoKHR.hsc

file too large to diff

+ src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc view

file too large to diff

+ src-gen/Graphics/Vulkan/Types/Struct/XYColorEXT.hsc view

file too large to diff

src/Graphics/Vulkan.hs view

file too large to diff

src/Graphics/Vulkan/Marshal.hs view

file too large to diff

src/Graphics/Vulkan/Marshal/Create.hs view

file too large to diff

src/Graphics/Vulkan/Marshal/Internal.hs view

file too large to diff

+ src/Graphics/Vulkan/Marshal/Proc.hs view

file too large to diff

vulkan-api.cabal view

file too large to diff