Просмотр исходного кода

Merge pull request #12 from davecamp/master

public vulkan api support
Brucey 9 лет назад
Родитель
Сommit
d6eb9a875f
4 измененных файлов с 4064 добавлено и 0 удалено
  1. 3794 0
      vulkan.mod/vkApi.bmx
  2. 204 0
      vulkan.mod/vkLoader.bmx
  3. 41 0
      vulkan.mod/vkOS.bmx
  4. 25 0
      vulkan.mod/vulkan.bmx

+ 3794 - 0
vulkan.mod/vkApi.bmx

@@ -0,0 +1,3794 @@
+
+'  Copyright (C) 2016 David JJ Camp
+'
+'  This software is provided 'as-is', without any express or implied
+'  warranty.  In no event will the authors be held liable for any damages
+'  arising from the use of this software.
+'
+'  Permission is granted to anyone to use this software for any purpose,
+'  including commercial applications, and to alter it and redistribute it
+'  freely, subject to the following restrictions:
+'
+'  1. The origin of this software must not be misrepresented; you must not
+'     claim that you wrote the original software. If you use this software
+'     in a product, an acknowledgment in the product documentation would be
+'     appreciated but is not required.
+'  2. Altered source versions must be plainly marked as such, and must not be
+'     misrepresented as being the original software.
+'  3. This notice may not be removed or altered from any source distribution.
+
+SuperStrict
+
+Function VK_MAKE_VERSION:UInt(major:UInt, minor:UInt, patch:UInt)
+	Return (major Shl 22) | (minor Shl 12) | patch
+EndFunction
+
+Function VK_VERSION_MAJOR:UInt(version:UInt)
+	Return version Shr 22
+EndFunction
+
+Function VK_VERSION_MINOR:UInt(version:UInt)
+	Return version Shr 12 & $3ff
+EndFunction
+
+Function VK_VERSION_PATCH:UInt(version:UInt)
+	Return version & $fff
+EndFunction
+
+' VkPipelineCacheHeaderVersion
+Const VK_PIPELINE_CACHE_HEADER_VERSION_ONE:Int = 1
+Const VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE:Int = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
+Const VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE:Int = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
+Const VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE:Int = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE-VK_PIPELINE_CACHE_HEADER_VERSION_ONE+1)
+Const VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM:Int = $7FFFFFFF
+
+' VkResult
+Const VK_SUCCESS:Int = 0
+Const VK_NOT_READY:Int = 1
+Const VK_TIMEOUT:Int = 2
+Const VK_EVENT_SET:Int = 3
+Const VK_EVENT_RESET:Int = 4
+Const VK_INCOMPLETE:Int = 5
+Const VK_ERROR_OUT_OF_HOST_MEMORY:Int = -1
+Const VK_ERROR_OUT_OF_DEVICE_MEMORY:Int = -2
+Const VK_ERROR_INITIALIZATION_FAILED:Int = -3
+Const VK_ERROR_DEVICE_LOST:Int = -4
+Const VK_ERROR_MEMORY_MAP_FAILED:Int = -5
+Const VK_ERROR_LAYER_NOT_PRESENT:Int = -6
+Const VK_ERROR_EXTENSION_NOT_PRESENT:Int = -7
+Const VK_ERROR_FEATURE_NOT_PRESENT:Int = -8
+Const VK_ERROR_INCOMPATIBLE_DRIVER:Int = -9
+Const VK_ERROR_TOO_MANY_OBJECTS:Int = -10
+Const VK_ERROR_FORMAT_NOT_SUPPORTED:Int = -11
+Const VK_ERROR_SURFACE_LOST_KHR:Int = -1000000000
+Const VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:Int = -1000000001
+Const VK_SUBOPTIMAL_KHR:Int = 1000001003
+Const VK_ERROR_OUT_OF_DATE_KHR:Int = -1000001004
+Const VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:Int = -1000003001
+Const VK_ERROR_VALIDATION_FAILED_EXT:Int = -1000011001
+Const VK_ERROR_INVALID_SHADER_NV:Int = -1000012000
+Const VK_RESULT_BEGIN_RANGE:Int = VK_ERROR_FORMAT_NOT_SUPPORTED
+Const VK_RESULT_END_RANGE:Int = VK_INCOMPLETE
+Const VK_RESULT_RANGE_SIZE:Int = (VK_INCOMPLETE-VK_ERROR_FORMAT_NOT_SUPPORTED+1)
+Const VK_RESULT_MAX_ENUM:Int = $7FFFFFFF
+
+' VkStructureType
+Const VK_STRUCTURE_TYPE_APPLICATION_INFO:Int = 0
+Const VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:Int = 1
+Const VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:Int = 2
+Const VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:Int = 3
+Const VK_STRUCTURE_TYPE_SUBMIT_INFO:Int = 4
+Const VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:Int = 5
+Const VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:Int = 6
+Const VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:Int = 7
+Const VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:Int = 8
+Const VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:Int = 9
+Const VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:Int = 10
+Const VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:Int = 11
+Const VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:Int = 12
+Const VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:Int = 13
+Const VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:Int = 14
+Const VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:Int = 15
+Const VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:Int = 16
+Const VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:Int = 17
+Const VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:Int = 18
+Const VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:Int = 19
+Const VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:Int = 20
+Const VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:Int = 21
+Const VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:Int = 22
+Const VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:Int = 23
+Const VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:Int = 24
+Const VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:Int = 25
+Const VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:Int = 26
+Const VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:Int = 27
+Const VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:Int = 28
+Const VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:Int = 29
+Const VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:Int = 30
+Const VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:Int = 31
+Const VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:Int = 32
+Const VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:Int = 33
+Const VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:Int = 34
+Const VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:Int = 35
+Const VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:Int = 36
+Const VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:Int = 37
+Const VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:Int = 38
+Const VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:Int = 39
+Const VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:Int = 40
+Const VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:Int = 41
+Const VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:Int = 42
+Const VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:Int = 43
+Const VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:Int = 44
+Const VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:Int = 45
+Const VK_STRUCTURE_TYPE_MEMORY_BARRIER:Int = 46
+Const VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:Int = 47
+Const VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:Int = 48
+Const VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:Int = 1000001000
+Const VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:Int = 1000001001
+Const VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:Int = 1000002000
+Const VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:Int = 1000002001
+Const VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:Int = 1000003000
+Const VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:Int = 1000004000
+Const VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:Int = 1000005000
+Const VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:Int = 1000006000
+Const VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR:Int = 1000007000
+Const VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:Int = 1000008000
+Const VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:Int = 1000009000
+Const VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:Int = 1000011000
+Const VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:Int = 1000018000
+Const VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:Int = 1000022000
+Const VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:Int = 1000022001
+Const VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:Int = 1000022002
+Const VK_STRUCTURE_TYPE_BEGIN_RANGE:Int = VK_STRUCTURE_TYPE_APPLICATION_INFO
+Const VK_STRUCTURE_TYPE_END_RANGE:Int = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
+Const VK_STRUCTURE_TYPE_RANGE_SIZE:Int = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO-VK_STRUCTURE_TYPE_APPLICATION_INFO+1)
+Const VK_STRUCTURE_TYPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkSystemAllocationScope
+Const VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:Int = 0
+Const VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:Int = 1
+Const VK_SYSTEM_ALLOCATION_SCOPE_CACHE:Int = 2
+Const VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:Int = 3
+Const VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:Int = 4
+Const VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE:Int = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
+Const VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE:Int = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
+Const VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE:Int = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE-VK_SYSTEM_ALLOCATION_SCOPE_COMMAND+1)
+Const VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkInternalAllocationType
+Const VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:Int = 0
+Const VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE:Int = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
+Const VK_INTERNAL_ALLOCATION_TYPE_END_RANGE:Int = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
+Const VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE:Int = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE-VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE+1)
+Const VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkFormat
+Const VK_FORMAT_UNDEFINED:Int = 0
+Const VK_FORMAT_R4G4_UNORM_PACK8:Int = 1
+Const VK_FORMAT_R4G4B4A4_UNORM_PACK16:Int = 2
+Const VK_FORMAT_B4G4R4A4_UNORM_PACK16:Int = 3
+Const VK_FORMAT_R5G6B5_UNORM_PACK16:Int = 4
+Const VK_FORMAT_B5G6R5_UNORM_PACK16:Int = 5
+Const VK_FORMAT_R5G5B5A1_UNORM_PACK16:Int = 6
+Const VK_FORMAT_B5G5R5A1_UNORM_PACK16:Int = 7
+Const VK_FORMAT_A1R5G5B5_UNORM_PACK16:Int = 8
+Const VK_FORMAT_R8_UNORM:Int = 9
+Const VK_FORMAT_R8_SNORM:Int = 10
+Const VK_FORMAT_R8_USCALED:Int = 11
+Const VK_FORMAT_R8_SSCALED:Int = 12
+Const VK_FORMAT_R8_UINT:Int = 13
+Const VK_FORMAT_R8_SINT:Int = 14
+Const VK_FORMAT_R8_SRGB:Int = 15
+Const VK_FORMAT_R8G8_UNORM:Int = 16
+Const VK_FORMAT_R8G8_SNORM:Int = 17
+Const VK_FORMAT_R8G8_USCALED:Int = 18
+Const VK_FORMAT_R8G8_SSCALED:Int = 19
+Const VK_FORMAT_R8G8_UINT:Int = 20
+Const VK_FORMAT_R8G8_SINT:Int = 21
+Const VK_FORMAT_R8G8_SRGB:Int = 22
+Const VK_FORMAT_R8G8B8_UNORM:Int = 23
+Const VK_FORMAT_R8G8B8_SNORM:Int = 24
+Const VK_FORMAT_R8G8B8_USCALED:Int = 25
+Const VK_FORMAT_R8G8B8_SSCALED:Int = 26
+Const VK_FORMAT_R8G8B8_UINT:Int = 27
+Const VK_FORMAT_R8G8B8_SINT:Int = 28
+Const VK_FORMAT_R8G8B8_SRGB:Int = 29
+Const VK_FORMAT_B8G8R8_UNORM:Int = 30
+Const VK_FORMAT_B8G8R8_SNORM:Int = 31
+Const VK_FORMAT_B8G8R8_USCALED:Int = 32
+Const VK_FORMAT_B8G8R8_SSCALED:Int = 33
+Const VK_FORMAT_B8G8R8_UINT:Int = 34
+Const VK_FORMAT_B8G8R8_SINT:Int = 35
+Const VK_FORMAT_B8G8R8_SRGB:Int = 36
+Const VK_FORMAT_R8G8B8A8_UNORM:Int = 37
+Const VK_FORMAT_R8G8B8A8_SNORM:Int = 38
+Const VK_FORMAT_R8G8B8A8_USCALED:Int = 39
+Const VK_FORMAT_R8G8B8A8_SSCALED:Int = 40
+Const VK_FORMAT_R8G8B8A8_UINT:Int = 41
+Const VK_FORMAT_R8G8B8A8_SINT:Int = 42
+Const VK_FORMAT_R8G8B8A8_SRGB:Int = 43
+Const VK_FORMAT_B8G8R8A8_UNORM:Int = 44
+Const VK_FORMAT_B8G8R8A8_SNORM:Int = 45
+Const VK_FORMAT_B8G8R8A8_USCALED:Int = 46
+Const VK_FORMAT_B8G8R8A8_SSCALED:Int = 47
+Const VK_FORMAT_B8G8R8A8_UINT:Int = 48
+Const VK_FORMAT_B8G8R8A8_SINT:Int = 49
+Const VK_FORMAT_B8G8R8A8_SRGB:Int = 50
+Const VK_FORMAT_A8B8G8R8_UNORM_PACK32:Int = 51
+Const VK_FORMAT_A8B8G8R8_SNORM_PACK32:Int = 52
+Const VK_FORMAT_A8B8G8R8_USCALED_PACK32:Int = 53
+Const VK_FORMAT_A8B8G8R8_SSCALED_PACK32:Int = 54
+Const VK_FORMAT_A8B8G8R8_UINT_PACK32:Int = 55
+Const VK_FORMAT_A8B8G8R8_SINT_PACK32:Int = 56
+Const VK_FORMAT_A8B8G8R8_SRGB_PACK32:Int = 57
+Const VK_FORMAT_A2R10G10B10_UNORM_PACK32:Int = 58
+Const VK_FORMAT_A2R10G10B10_SNORM_PACK32:Int = 59
+Const VK_FORMAT_A2R10G10B10_USCALED_PACK32:Int = 60
+Const VK_FORMAT_A2R10G10B10_SSCALED_PACK32:Int = 61
+Const VK_FORMAT_A2R10G10B10_UINT_PACK32:Int = 62
+Const VK_FORMAT_A2R10G10B10_SINT_PACK32:Int = 63
+Const VK_FORMAT_A2B10G10R10_UNORM_PACK32:Int = 64
+Const VK_FORMAT_A2B10G10R10_SNORM_PACK32:Int = 65
+Const VK_FORMAT_A2B10G10R10_USCALED_PACK32:Int = 66
+Const VK_FORMAT_A2B10G10R10_SSCALED_PACK32:Int = 67
+Const VK_FORMAT_A2B10G10R10_UINT_PACK32:Int = 68
+Const VK_FORMAT_A2B10G10R10_SINT_PACK32:Int = 69
+Const VK_FORMAT_R16_UNORM:Int = 70
+Const VK_FORMAT_R16_SNORM:Int = 71
+Const VK_FORMAT_R16_USCALED:Int = 72
+Const VK_FORMAT_R16_SSCALED:Int = 73
+Const VK_FORMAT_R16_UINT:Int = 74
+Const VK_FORMAT_R16_SINT:Int = 75
+Const VK_FORMAT_R16_SFLOAT:Int = 76
+Const VK_FORMAT_R16G16_UNORM:Int = 77
+Const VK_FORMAT_R16G16_SNORM:Int = 78
+Const VK_FORMAT_R16G16_USCALED:Int = 79
+Const VK_FORMAT_R16G16_SSCALED:Int = 80
+Const VK_FORMAT_R16G16_UINT:Int = 81
+Const VK_FORMAT_R16G16_SINT:Int = 82
+Const VK_FORMAT_R16G16_SFLOAT:Int = 83
+Const VK_FORMAT_R16G16B16_UNORM:Int = 84
+Const VK_FORMAT_R16G16B16_SNORM:Int = 85
+Const VK_FORMAT_R16G16B16_USCALED:Int = 86
+Const VK_FORMAT_R16G16B16_SSCALED:Int = 87
+Const VK_FORMAT_R16G16B16_UINT:Int = 88
+Const VK_FORMAT_R16G16B16_SINT:Int = 89
+Const VK_FORMAT_R16G16B16_SFLOAT:Int = 90
+Const VK_FORMAT_R16G16B16A16_UNORM:Int = 91
+Const VK_FORMAT_R16G16B16A16_SNORM:Int = 92
+Const VK_FORMAT_R16G16B16A16_USCALED:Int = 93
+Const VK_FORMAT_R16G16B16A16_SSCALED:Int = 94
+Const VK_FORMAT_R16G16B16A16_UINT:Int = 95
+Const VK_FORMAT_R16G16B16A16_SINT:Int = 96
+Const VK_FORMAT_R16G16B16A16_SFLOAT:Int = 97
+Const VK_FORMAT_R32_UINT:Int = 98
+Const VK_FORMAT_R32_SINT:Int = 99
+Const VK_FORMAT_R32_SFLOAT:Int = 100
+Const VK_FORMAT_R32G32_UINT:Int = 101
+Const VK_FORMAT_R32G32_SINT:Int = 102
+Const VK_FORMAT_R32G32_SFLOAT:Int = 103
+Const VK_FORMAT_R32G32B32_UINT:Int = 104
+Const VK_FORMAT_R32G32B32_SINT:Int = 105
+Const VK_FORMAT_R32G32B32_SFLOAT:Int = 106
+Const VK_FORMAT_R32G32B32A32_UINT:Int = 107
+Const VK_FORMAT_R32G32B32A32_SINT:Int = 108
+Const VK_FORMAT_R32G32B32A32_SFLOAT:Int = 109
+Const VK_FORMAT_R64_UINT:Int = 110
+Const VK_FORMAT_R64_SINT:Int = 111
+Const VK_FORMAT_R64_SFLOAT:Int = 112
+Const VK_FORMAT_R64G64_UINT:Int = 113
+Const VK_FORMAT_R64G64_SINT:Int = 114
+Const VK_FORMAT_R64G64_SFLOAT:Int = 115
+Const VK_FORMAT_R64G64B64_UINT:Int = 116
+Const VK_FORMAT_R64G64B64_SINT:Int = 117
+Const VK_FORMAT_R64G64B64_SFLOAT:Int = 118
+Const VK_FORMAT_R64G64B64A64_UINT:Int = 119
+Const VK_FORMAT_R64G64B64A64_SINT:Int = 120
+Const VK_FORMAT_R64G64B64A64_SFLOAT:Int = 121
+Const VK_FORMAT_B10G11R11_UFLOAT_PACK32:Int = 122
+Const VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:Int = 123
+Const VK_FORMAT_D16_UNORM:Int = 124
+Const VK_FORMAT_X8_D24_UNORM_PACK32:Int = 125
+Const VK_FORMAT_D32_SFLOAT:Int = 126
+Const VK_FORMAT_S8_UINT:Int = 127
+Const VK_FORMAT_D16_UNORM_S8_UINT:Int = 128
+Const VK_FORMAT_D24_UNORM_S8_UINT:Int = 129
+Const VK_FORMAT_D32_SFLOAT_S8_UINT:Int = 130
+Const VK_FORMAT_BC1_RGB_UNORM_BLOCK:Int = 131
+Const VK_FORMAT_BC1_RGB_SRGB_BLOCK:Int = 132
+Const VK_FORMAT_BC1_RGBA_UNORM_BLOCK:Int = 133
+Const VK_FORMAT_BC1_RGBA_SRGB_BLOCK:Int = 134
+Const VK_FORMAT_BC2_UNORM_BLOCK:Int = 135
+Const VK_FORMAT_BC2_SRGB_BLOCK:Int = 136
+Const VK_FORMAT_BC3_UNORM_BLOCK:Int = 137
+Const VK_FORMAT_BC3_SRGB_BLOCK:Int = 138
+Const VK_FORMAT_BC4_UNORM_BLOCK:Int = 139
+Const VK_FORMAT_BC4_SNORM_BLOCK:Int = 140
+Const VK_FORMAT_BC5_UNORM_BLOCK:Int = 141
+Const VK_FORMAT_BC5_SNORM_BLOCK:Int = 142
+Const VK_FORMAT_BC6H_UFLOAT_BLOCK:Int = 143
+Const VK_FORMAT_BC6H_SFLOAT_BLOCK:Int = 144
+Const VK_FORMAT_BC7_UNORM_BLOCK:Int = 145
+Const VK_FORMAT_BC7_SRGB_BLOCK:Int = 146
+Const VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:Int = 147
+Const VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:Int = 148
+Const VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:Int = 149
+Const VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:Int = 150
+Const VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:Int = 151
+Const VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:Int = 152
+Const VK_FORMAT_EAC_R11_UNORM_BLOCK:Int = 153
+Const VK_FORMAT_EAC_R11_SNORM_BLOCK:Int = 154
+Const VK_FORMAT_EAC_R11G11_UNORM_BLOCK:Int = 155
+Const VK_FORMAT_EAC_R11G11_SNORM_BLOCK:Int = 156
+Const VK_FORMAT_ASTC_4x4_UNORM_BLOCK:Int = 157
+Const VK_FORMAT_ASTC_4x4_SRGB_BLOCK:Int = 158
+Const VK_FORMAT_ASTC_5x4_UNORM_BLOCK:Int = 159
+Const VK_FORMAT_ASTC_5x4_SRGB_BLOCK:Int = 160
+Const VK_FORMAT_ASTC_5x5_UNORM_BLOCK:Int = 161
+Const VK_FORMAT_ASTC_5x5_SRGB_BLOCK:Int = 162
+Const VK_FORMAT_ASTC_6x5_UNORM_BLOCK:Int = 163
+Const VK_FORMAT_ASTC_6x5_SRGB_BLOCK:Int = 164
+Const VK_FORMAT_ASTC_6x6_UNORM_BLOCK:Int = 165
+Const VK_FORMAT_ASTC_6x6_SRGB_BLOCK:Int = 166
+Const VK_FORMAT_ASTC_8x5_UNORM_BLOCK:Int = 167
+Const VK_FORMAT_ASTC_8x5_SRGB_BLOCK:Int = 168
+Const VK_FORMAT_ASTC_8x6_UNORM_BLOCK:Int = 169
+Const VK_FORMAT_ASTC_8x6_SRGB_BLOCK:Int = 170
+Const VK_FORMAT_ASTC_8x8_UNORM_BLOCK:Int = 171
+Const VK_FORMAT_ASTC_8x8_SRGB_BLOCK:Int = 172
+Const VK_FORMAT_ASTC_10x5_UNORM_BLOCK:Int = 173
+Const VK_FORMAT_ASTC_10x5_SRGB_BLOCK:Int = 174
+Const VK_FORMAT_ASTC_10x6_UNORM_BLOCK:Int = 175
+Const VK_FORMAT_ASTC_10x6_SRGB_BLOCK:Int = 176
+Const VK_FORMAT_ASTC_10x8_UNORM_BLOCK:Int = 177
+Const VK_FORMAT_ASTC_10x8_SRGB_BLOCK:Int = 178
+Const VK_FORMAT_ASTC_10x10_UNORM_BLOCK:Int = 179
+Const VK_FORMAT_ASTC_10x10_SRGB_BLOCK:Int = 180
+Const VK_FORMAT_ASTC_12x10_UNORM_BLOCK:Int = 181
+Const VK_FORMAT_ASTC_12x10_SRGB_BLOCK:Int = 182
+Const VK_FORMAT_ASTC_12x12_UNORM_BLOCK:Int = 183
+Const VK_FORMAT_ASTC_12x12_SRGB_BLOCK:Int = 184
+Const VK_FORMAT_BEGIN_RANGE:Int = VK_FORMAT_UNDEFINED
+Const VK_FORMAT_END_RANGE:Int = VK_FORMAT_ASTC_12x12_SRGB_BLOCK
+Const VK_FORMAT_RANGE_SIZE:Int = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK-VK_FORMAT_UNDEFINED+1)
+Const VK_FORMAT_MAX_ENUM:Int = $7FFFFFFF
+
+' VkImageType
+Const VK_IMAGE_TYPE_1D:Int = 0
+Const VK_IMAGE_TYPE_2D:Int = 1
+Const VK_IMAGE_TYPE_3D:Int = 2
+Const VK_IMAGE_TYPE_BEGIN_RANGE:Int = VK_IMAGE_TYPE_1D
+Const VK_IMAGE_TYPE_END_RANGE:Int = VK_IMAGE_TYPE_3D
+Const VK_IMAGE_TYPE_RANGE_SIZE:Int = (VK_IMAGE_TYPE_3D-VK_IMAGE_TYPE_1D+1)
+Const VK_IMAGE_TYPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkImageTiling
+Const VK_IMAGE_TILING_OPTIMAL:Int = 0
+Const VK_IMAGE_TILING_LINEAR:Int = 1
+Const VK_IMAGE_TILING_BEGIN_RANGE:Int = VK_IMAGE_TILING_OPTIMAL
+Const VK_IMAGE_TILING_END_RANGE:Int = VK_IMAGE_TILING_LINEAR
+Const VK_IMAGE_TILING_RANGE_SIZE:Int = (VK_IMAGE_TILING_LINEAR-VK_IMAGE_TILING_OPTIMAL+1)
+Const VK_IMAGE_TILING_MAX_ENUM:Int = $7FFFFFFF
+
+' VkPhysicalDeviceType
+Const VK_PHYSICAL_DEVICE_TYPE_OTHER:Int = 0
+Const VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:Int = 1
+Const VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:Int = 2
+Const VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:Int = 3
+Const VK_PHYSICAL_DEVICE_TYPE_CPU:Int = 4
+Const VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE:Int = VK_PHYSICAL_DEVICE_TYPE_OTHER
+Const VK_PHYSICAL_DEVICE_TYPE_END_RANGE:Int = VK_PHYSICAL_DEVICE_TYPE_CPU
+Const VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE:Int = (VK_PHYSICAL_DEVICE_TYPE_CPU-VK_PHYSICAL_DEVICE_TYPE_OTHER+1)
+Const VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkQueryType
+Const VK_QUERY_TYPE_OCCLUSION:Int = 0
+Const VK_QUERY_TYPE_PIPELINE_STATISTICS:Int = 1
+Const VK_QUERY_TYPE_TIMESTAMP:Int = 2
+Const VK_QUERY_TYPE_BEGIN_RANGE:Int = VK_QUERY_TYPE_OCCLUSION
+Const VK_QUERY_TYPE_END_RANGE:Int = VK_QUERY_TYPE_TIMESTAMP
+Const VK_QUERY_TYPE_RANGE_SIZE:Int = (VK_QUERY_TYPE_TIMESTAMP-VK_QUERY_TYPE_OCCLUSION+1)
+Const VK_QUERY_TYPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkSharingMode
+Const VK_SHARING_MODE_EXCLUSIVE:Int = 0
+Const VK_SHARING_MODE_CONCURRENT:Int = 1
+Const VK_SHARING_MODE_BEGIN_RANGE:Int = VK_SHARING_MODE_EXCLUSIVE
+Const VK_SHARING_MODE_END_RANGE:Int = VK_SHARING_MODE_CONCURRENT
+Const VK_SHARING_MODE_RANGE_SIZE:Int = (VK_SHARING_MODE_CONCURRENT-VK_SHARING_MODE_EXCLUSIVE+1)
+Const VK_SHARING_MODE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkImageLayout
+Const VK_IMAGE_LAYOUT_UNDEFINED:Int = 0
+Const VK_IMAGE_LAYOUT_GENERAL:Int = 1
+Const VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:Int = 2
+Const VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:Int = 3
+Const VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:Int = 4
+Const VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:Int = 5
+Const VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:Int = 6
+Const VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:Int = 7
+Const VK_IMAGE_LAYOUT_PREINITIALIZED:Int = 8
+Const VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:Int = 1000001002
+Const VK_IMAGE_LAYOUT_BEGIN_RANGE:Int = VK_IMAGE_LAYOUT_UNDEFINED
+Const VK_IMAGE_LAYOUT_END_RANGE:Int = VK_IMAGE_LAYOUT_PREINITIALIZED
+Const VK_IMAGE_LAYOUT_RANGE_SIZE:Int = (VK_IMAGE_LAYOUT_PREINITIALIZED-VK_IMAGE_LAYOUT_UNDEFINED+1)
+Const VK_IMAGE_LAYOUT_MAX_ENUM:Int = $7FFFFFFF
+
+' VkImageViewType
+Const VK_IMAGE_VIEW_TYPE_1D:Int = 0
+Const VK_IMAGE_VIEW_TYPE_2D:Int = 1
+Const VK_IMAGE_VIEW_TYPE_3D:Int = 2
+Const VK_IMAGE_VIEW_TYPE_CUBE:Int = 3
+Const VK_IMAGE_VIEW_TYPE_1D_ARRAY:Int = 4
+Const VK_IMAGE_VIEW_TYPE_2D_ARRAY:Int = 5
+Const VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:Int = 6
+Const VK_IMAGE_VIEW_TYPE_BEGIN_RANGE:Int = VK_IMAGE_VIEW_TYPE_1D
+Const VK_IMAGE_VIEW_TYPE_END_RANGE:Int = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
+Const VK_IMAGE_VIEW_TYPE_RANGE_SIZE:Int = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY-VK_IMAGE_VIEW_TYPE_1D+1)
+Const VK_IMAGE_VIEW_TYPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkComponentSwizzle
+Const VK_COMPONENT_SWIZZLE_IDENTITY:Int = 0
+Const VK_COMPONENT_SWIZZLE_ZERO:Int = 1
+Const VK_COMPONENT_SWIZZLE_ONE:Int = 2
+Const VK_COMPONENT_SWIZZLE_R:Int = 3
+Const VK_COMPONENT_SWIZZLE_G:Int = 4
+Const VK_COMPONENT_SWIZZLE_B:Int = 5
+Const VK_COMPONENT_SWIZZLE_A:Int = 6
+Const VK_COMPONENT_SWIZZLE_BEGIN_RANGE:Int = VK_COMPONENT_SWIZZLE_IDENTITY
+Const VK_COMPONENT_SWIZZLE_END_RANGE:Int = VK_COMPONENT_SWIZZLE_A
+Const VK_COMPONENT_SWIZZLE_RANGE_SIZE:Int = (VK_COMPONENT_SWIZZLE_A-VK_COMPONENT_SWIZZLE_IDENTITY+1)
+Const VK_COMPONENT_SWIZZLE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkVertexInputRate
+Const VK_VERTEX_INPUT_RATE_VERTEX:Int = 0
+Const VK_VERTEX_INPUT_RATE_INSTANCE:Int = 1
+Const VK_VERTEX_INPUT_RATE_BEGIN_RANGE:Int = VK_VERTEX_INPUT_RATE_VERTEX
+Const VK_VERTEX_INPUT_RATE_END_RANGE:Int = VK_VERTEX_INPUT_RATE_INSTANCE
+Const VK_VERTEX_INPUT_RATE_RANGE_SIZE:Int = (VK_VERTEX_INPUT_RATE_INSTANCE-VK_VERTEX_INPUT_RATE_VERTEX+1)
+Const VK_VERTEX_INPUT_RATE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkPrimitiveTopology
+Const VK_PRIMITIVE_TOPOLOGY_POINT_LIST:Int = 0
+Const VK_PRIMITIVE_TOPOLOGY_LINE_LIST:Int = 1
+Const VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:Int = 2
+Const VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:Int = 3
+Const VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:Int = 4
+Const VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:Int = 5
+Const VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:Int = 6
+Const VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:Int = 7
+Const VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:Int = 8
+Const VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:Int = 9
+Const VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:Int = 10
+Const VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE:Int = VK_PRIMITIVE_TOPOLOGY_POINT_LIST
+Const VK_PRIMITIVE_TOPOLOGY_END_RANGE:Int = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
+Const VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE:Int = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST-VK_PRIMITIVE_TOPOLOGY_POINT_LIST+1)
+Const VK_PRIMITIVE_TOPOLOGY_MAX_ENUM:Int = $7FFFFFFF
+
+' VkPolygonMode
+Const VK_POLYGON_MODE_FILL:Int = 0
+Const VK_POLYGON_MODE_LINE:Int = 1
+Const VK_POLYGON_MODE_POINT:Int = 2
+Const VK_POLYGON_MODE_BEGIN_RANGE:Int = VK_POLYGON_MODE_FILL
+Const VK_POLYGON_MODE_END_RANGE:Int = VK_POLYGON_MODE_POINT
+Const VK_POLYGON_MODE_RANGE_SIZE:Int = (VK_POLYGON_MODE_POINT-VK_POLYGON_MODE_FILL+1)
+Const VK_POLYGON_MODE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkFrontFace
+Const VK_FRONT_FACE_COUNTER_CLOCKWISE:Int = 0
+Const VK_FRONT_FACE_CLOCKWISE:Int = 1
+Const VK_FRONT_FACE_BEGIN_RANGE:Int = VK_FRONT_FACE_COUNTER_CLOCKWISE
+Const VK_FRONT_FACE_END_RANGE:Int = VK_FRONT_FACE_CLOCKWISE
+Const VK_FRONT_FACE_RANGE_SIZE:Int = (VK_FRONT_FACE_CLOCKWISE-VK_FRONT_FACE_COUNTER_CLOCKWISE+1)
+Const VK_FRONT_FACE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkCompareOp
+Const VK_COMPARE_OP_NEVER:Int = 0
+Const VK_COMPARE_OP_LESS:Int = 1
+Const VK_COMPARE_OP_EQUAL:Int = 2
+Const VK_COMPARE_OP_LESS_OR_EQUAL:Int = 3
+Const VK_COMPARE_OP_GREATER:Int = 4
+Const VK_COMPARE_OP_NOT_EQUAL:Int = 5
+Const VK_COMPARE_OP_GREATER_OR_EQUAL:Int = 6
+Const VK_COMPARE_OP_ALWAYS:Int = 7
+Const VK_COMPARE_OP_BEGIN_RANGE:Int = VK_COMPARE_OP_NEVER
+Const VK_COMPARE_OP_END_RANGE:Int = VK_COMPARE_OP_ALWAYS
+Const VK_COMPARE_OP_RANGE_SIZE:Int = (VK_COMPARE_OP_ALWAYS-VK_COMPARE_OP_NEVER+1)
+Const VK_COMPARE_OP_MAX_ENUM:Int = $7FFFFFFF
+
+' VkStencilOp
+Const VK_STENCIL_OP_KEEP:Int = 0
+Const VK_STENCIL_OP_ZERO:Int = 1
+Const VK_STENCIL_OP_REPLACE:Int = 2
+Const VK_STENCIL_OP_INCREMENT_AND_CLAMP:Int = 3
+Const VK_STENCIL_OP_DECREMENT_AND_CLAMP:Int = 4
+Const VK_STENCIL_OP_INVERT:Int = 5
+Const VK_STENCIL_OP_INCREMENT_AND_WRAP:Int = 6
+Const VK_STENCIL_OP_DECREMENT_AND_WRAP:Int = 7
+Const VK_STENCIL_OP_BEGIN_RANGE:Int = VK_STENCIL_OP_KEEP
+Const VK_STENCIL_OP_END_RANGE:Int = VK_STENCIL_OP_DECREMENT_AND_WRAP
+Const VK_STENCIL_OP_RANGE_SIZE:Int = (VK_STENCIL_OP_DECREMENT_AND_WRAP-VK_STENCIL_OP_KEEP+1)
+Const VK_STENCIL_OP_MAX_ENUM:Int = $7FFFFFFF
+
+' VkLogicOp
+Const VK_LOGIC_OP_CLEAR:Int = 0
+Const VK_LOGIC_OP_AND:Int = 1
+Const VK_LOGIC_OP_AND_REVERSE:Int = 2
+Const VK_LOGIC_OP_COPY:Int = 3
+Const VK_LOGIC_OP_AND_INVERTED:Int = 4
+Const VK_LOGIC_OP_NO_OP:Int = 5
+Const VK_LOGIC_OP_XOR:Int = 6
+Const VK_LOGIC_OP_OR:Int = 7
+Const VK_LOGIC_OP_NOR:Int = 8
+Const VK_LOGIC_OP_EQUIVALENT:Int = 9
+Const VK_LOGIC_OP_INVERT:Int = 10
+Const VK_LOGIC_OP_OR_REVERSE:Int = 11
+Const VK_LOGIC_OP_COPY_INVERTED:Int = 12
+Const VK_LOGIC_OP_OR_INVERTED:Int = 13
+Const VK_LOGIC_OP_NAND:Int = 14
+Const VK_LOGIC_OP_SET:Int = 15
+Const VK_LOGIC_OP_BEGIN_RANGE:Int = VK_LOGIC_OP_CLEAR
+Const VK_LOGIC_OP_END_RANGE:Int = VK_LOGIC_OP_SET
+Const VK_LOGIC_OP_RANGE_SIZE:Int = (VK_LOGIC_OP_SET-VK_LOGIC_OP_CLEAR+1)
+Const VK_LOGIC_OP_MAX_ENUM:Int = $7FFFFFFF
+
+' VkBlendFactor
+Const VK_BLEND_FACTOR_ZERO:Int = 0
+Const VK_BLEND_FACTOR_ONE:Int = 1
+Const VK_BLEND_FACTOR_SRC_COLOR:Int = 2
+Const VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:Int = 3
+Const VK_BLEND_FACTOR_DST_COLOR:Int = 4
+Const VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:Int = 5
+Const VK_BLEND_FACTOR_SRC_ALPHA:Int = 6
+Const VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:Int = 7
+Const VK_BLEND_FACTOR_DST_ALPHA:Int = 8
+Const VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:Int = 9
+Const VK_BLEND_FACTOR_CONSTANT_COLOR:Int = 10
+Const VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:Int = 11
+Const VK_BLEND_FACTOR_CONSTANT_ALPHA:Int = 12
+Const VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:Int = 13
+Const VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:Int = 14
+Const VK_BLEND_FACTOR_SRC1_COLOR:Int = 15
+Const VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:Int = 16
+Const VK_BLEND_FACTOR_SRC1_ALPHA:Int = 17
+Const VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:Int = 18
+Const VK_BLEND_FACTOR_BEGIN_RANGE:Int = VK_BLEND_FACTOR_ZERO
+Const VK_BLEND_FACTOR_END_RANGE:Int = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
+Const VK_BLEND_FACTOR_RANGE_SIZE:Int = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA-VK_BLEND_FACTOR_ZERO+1)
+Const VK_BLEND_FACTOR_MAX_ENUM:Int = $7FFFFFFF
+
+' VkBlendOp
+Const VK_BLEND_OP_ADD:Int = 0
+Const VK_BLEND_OP_SUBTRACT:Int = 1
+Const VK_BLEND_OP_REVERSE_SUBTRACT:Int = 2
+Const VK_BLEND_OP_MIN:Int = 3
+Const VK_BLEND_OP_MAX:Int = 4
+Const VK_BLEND_OP_BEGIN_RANGE:Int = VK_BLEND_OP_ADD
+Const VK_BLEND_OP_END_RANGE:Int = VK_BLEND_OP_MAX
+Const VK_BLEND_OP_RANGE_SIZE:Int = (VK_BLEND_OP_MAX-VK_BLEND_OP_ADD+1)
+Const VK_BLEND_OP_MAX_ENUM:Int = $7FFFFFFF
+
+' VkDynamicState
+Const VK_DYNAMIC_STATE_VIEWPORT:Int = 0
+Const VK_DYNAMIC_STATE_SCISSOR:Int = 1
+Const VK_DYNAMIC_STATE_LINE_WIDTH:Int = 2
+Const VK_DYNAMIC_STATE_DEPTH_BIAS:Int = 3
+Const VK_DYNAMIC_STATE_BLEND_CONSTANTS:Int = 4
+Const VK_DYNAMIC_STATE_DEPTH_BOUNDS:Int = 5
+Const VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:Int = 6
+Const VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:Int = 7
+Const VK_DYNAMIC_STATE_STENCIL_REFERENCE:Int = 8
+Const VK_DYNAMIC_STATE_BEGIN_RANGE:Int = VK_DYNAMIC_STATE_VIEWPORT
+Const VK_DYNAMIC_STATE_END_RANGE:Int = VK_DYNAMIC_STATE_STENCIL_REFERENCE
+Const VK_DYNAMIC_STATE_RANGE_SIZE:Int = (VK_DYNAMIC_STATE_STENCIL_REFERENCE-VK_DYNAMIC_STATE_VIEWPORT+1)
+Const VK_DYNAMIC_STATE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkFilter
+Const VK_FILTER_NEAREST:Int = 0
+Const VK_FILTER_LINEAR:Int = 1
+Const VK_FILTER_CUBIC_IMG:Int = 1000015000
+Const VK_FILTER_BEGIN_RANGE:Int = VK_FILTER_NEAREST
+Const VK_FILTER_END_RANGE:Int = VK_FILTER_LINEAR
+Const VK_FILTER_RANGE_SIZE:Int = (VK_FILTER_LINEAR-VK_FILTER_NEAREST+1)
+Const VK_FILTER_MAX_ENUM:Int = $7FFFFFFF
+
+' VkSamplerMipmapMode
+Const VK_SAMPLER_MIPMAP_MODE_NEAREST:Int = 0
+Const VK_SAMPLER_MIPMAP_MODE_LINEAR:Int = 1
+Const VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE:Int = VK_SAMPLER_MIPMAP_MODE_NEAREST
+Const VK_SAMPLER_MIPMAP_MODE_END_RANGE:Int = VK_SAMPLER_MIPMAP_MODE_LINEAR
+Const VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE:Int = (VK_SAMPLER_MIPMAP_MODE_LINEAR-VK_SAMPLER_MIPMAP_MODE_NEAREST+1)
+Const VK_SAMPLER_MIPMAP_MODE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkSamplerAddressMode
+Const VK_SAMPLER_ADDRESS_MODE_REPEAT:Int = 0
+Const VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:Int = 1
+Const VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:Int = 2
+Const VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:Int = 3
+Const VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:Int = 4
+Const VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE:Int = VK_SAMPLER_ADDRESS_MODE_REPEAT
+Const VK_SAMPLER_ADDRESS_MODE_END_RANGE:Int = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
+Const VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE:Int = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER-VK_SAMPLER_ADDRESS_MODE_REPEAT+1)
+Const VK_SAMPLER_ADDRESS_MODE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkBorderColor
+Const VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:Int = 0
+Const VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:Int = 1
+Const VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:Int = 2
+Const VK_BORDER_COLOR_INT_OPAQUE_BLACK:Int = 3
+Const VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:Int = 4
+Const VK_BORDER_COLOR_INT_OPAQUE_WHITE:Int = 5
+Const VK_BORDER_COLOR_BEGIN_RANGE:Int = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
+Const VK_BORDER_COLOR_END_RANGE:Int = VK_BORDER_COLOR_INT_OPAQUE_WHITE
+Const VK_BORDER_COLOR_RANGE_SIZE:Int = (VK_BORDER_COLOR_INT_OPAQUE_WHITE-VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK+1)
+Const VK_BORDER_COLOR_MAX_ENUM:Int = $7FFFFFFF
+
+' VkDescriptorType
+Const VK_DESCRIPTOR_TYPE_SAMPLER:Int = 0
+Const VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:Int = 1
+Const VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:Int = 2
+Const VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:Int = 3
+Const VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:Int = 4
+Const VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:Int = 5
+Const VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:Int = 6
+Const VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:Int = 7
+Const VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:Int = 8
+Const VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:Int = 9
+Const VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:Int = 10
+Const VK_DESCRIPTOR_TYPE_BEGIN_RANGE:Int = VK_DESCRIPTOR_TYPE_SAMPLER
+Const VK_DESCRIPTOR_TYPE_END_RANGE:Int = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
+Const VK_DESCRIPTOR_TYPE_RANGE_SIZE:Int = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT-VK_DESCRIPTOR_TYPE_SAMPLER+1)
+Const VK_DESCRIPTOR_TYPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkAttachmentLoadOp
+Const VK_ATTACHMENT_LOAD_OP_LOAD:Int = 0
+Const VK_ATTACHMENT_LOAD_OP_CLEAR:Int = 1
+Const VK_ATTACHMENT_LOAD_OP_DONT_CARE:Int = 2
+Const VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE:Int = VK_ATTACHMENT_LOAD_OP_LOAD
+Const VK_ATTACHMENT_LOAD_OP_END_RANGE:Int = VK_ATTACHMENT_LOAD_OP_DONT_CARE
+Const VK_ATTACHMENT_LOAD_OP_RANGE_SIZE:Int = (VK_ATTACHMENT_LOAD_OP_DONT_CARE-VK_ATTACHMENT_LOAD_OP_LOAD+1)
+Const VK_ATTACHMENT_LOAD_OP_MAX_ENUM:Int = $7FFFFFFF
+
+' VkAttachmentStoreOp
+Const VK_ATTACHMENT_STORE_OP_STORE:Int = 0
+Const VK_ATTACHMENT_STORE_OP_DONT_CARE:Int = 1
+Const VK_ATTACHMENT_STORE_OP_BEGIN_RANGE:Int = VK_ATTACHMENT_STORE_OP_STORE
+Const VK_ATTACHMENT_STORE_OP_END_RANGE:Int = VK_ATTACHMENT_STORE_OP_DONT_CARE
+Const VK_ATTACHMENT_STORE_OP_RANGE_SIZE:Int = (VK_ATTACHMENT_STORE_OP_DONT_CARE-VK_ATTACHMENT_STORE_OP_STORE+1)
+Const VK_ATTACHMENT_STORE_OP_MAX_ENUM:Int = $7FFFFFFF
+
+' VkPipelineBindPoint
+Const VK_PIPELINE_BIND_POINT_GRAPHICS:Int = 0
+Const VK_PIPELINE_BIND_POINT_COMPUTE:Int = 1
+Const VK_PIPELINE_BIND_POINT_BEGIN_RANGE:Int = VK_PIPELINE_BIND_POINT_GRAPHICS
+Const VK_PIPELINE_BIND_POINT_END_RANGE:Int = VK_PIPELINE_BIND_POINT_COMPUTE
+Const VK_PIPELINE_BIND_POINT_RANGE_SIZE:Int = (VK_PIPELINE_BIND_POINT_COMPUTE-VK_PIPELINE_BIND_POINT_GRAPHICS+1)
+Const VK_PIPELINE_BIND_POINT_MAX_ENUM:Int = $7FFFFFFF
+
+' VkCommandBufferLevel
+Const VK_COMMAND_BUFFER_LEVEL_PRIMARY:Int = 0
+Const VK_COMMAND_BUFFER_LEVEL_SECONDARY:Int = 1
+Const VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE:Int = VK_COMMAND_BUFFER_LEVEL_PRIMARY
+Const VK_COMMAND_BUFFER_LEVEL_END_RANGE:Int = VK_COMMAND_BUFFER_LEVEL_SECONDARY
+Const VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE:Int = (VK_COMMAND_BUFFER_LEVEL_SECONDARY-VK_COMMAND_BUFFER_LEVEL_PRIMARY+1)
+Const VK_COMMAND_BUFFER_LEVEL_MAX_ENUM:Int = $7FFFFFFF
+
+' VkIndexType
+Const VK_INDEX_TYPE_UINT16:Int = 0
+Const VK_INDEX_TYPE_UINT32:Int = 1
+Const VK_INDEX_TYPE_BEGIN_RANGE:Int = VK_INDEX_TYPE_UINT16
+Const VK_INDEX_TYPE_END_RANGE:Int = VK_INDEX_TYPE_UINT32
+Const VK_INDEX_TYPE_RANGE_SIZE:Int = (VK_INDEX_TYPE_UINT32-VK_INDEX_TYPE_UINT16+1)
+Const VK_INDEX_TYPE_MAX_ENUM:Int = $7FFFFFFF
+
+' VkSubpassContents
+Const VK_SUBPASS_CONTENTS_INLINE:Int = 0
+Const VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:Int = 1
+Const VK_SUBPASS_CONTENTS_BEGIN_RANGE:Int = VK_SUBPASS_CONTENTS_INLINE
+Const VK_SUBPASS_CONTENTS_END_RANGE:Int = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
+Const VK_SUBPASS_CONTENTS_RANGE_SIZE:Int = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS-VK_SUBPASS_CONTENTS_INLINE+1)
+Const VK_SUBPASS_CONTENTS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkFormatFeatureFlagBits
+Const VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT:Int = $00000001
+Const VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT:Int = $00000002
+Const VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT:Int = $00000004
+Const VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT:Int = $00000008
+Const VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT:Int = $00000010
+Const VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT:Int = $00000020
+Const VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT:Int = $00000040
+Const VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT:Int = $00000080
+Const VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT:Int = $00000100
+Const VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT:Int = $00000200
+Const VK_FORMAT_FEATURE_BLIT_SRC_BIT:Int = $00000400
+Const VK_FORMAT_FEATURE_BLIT_DST_BIT:Int = $00000800
+Const VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT:Int = $00001000
+Const VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG:Int = $00002000
+Const VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkImageUsageFlagBits
+Const VK_IMAGE_USAGE_TRANSFER_SRC_BIT:Int = $00000001
+Const VK_IMAGE_USAGE_TRANSFER_DST_BIT:Int = $00000002
+Const VK_IMAGE_USAGE_SAMPLED_BIT:Int = $00000004
+Const VK_IMAGE_USAGE_STORAGE_BIT:Int = $00000008
+Const VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT:Int = $00000010
+Const VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT:Int = $00000020
+Const VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT:Int = $00000040
+Const VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT:Int = $00000080
+Const VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkImageCreateFlagBits
+Const VK_IMAGE_CREATE_SPARSE_BINDING_BIT:Int = $00000001
+Const VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT:Int = $00000002
+Const VK_IMAGE_CREATE_SPARSE_ALIASED_BIT:Int = $00000004
+Const VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT:Int = $00000008
+Const VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT:Int = $00000010
+Const VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkSampleCountFlagBits
+Const VK_SAMPLE_COUNT_1_BIT:Int = $00000001
+Const VK_SAMPLE_COUNT_2_BIT:Int = $00000002
+Const VK_SAMPLE_COUNT_4_BIT:Int = $00000004
+Const VK_SAMPLE_COUNT_8_BIT:Int = $00000008
+Const VK_SAMPLE_COUNT_16_BIT:Int = $00000010
+Const VK_SAMPLE_COUNT_32_BIT:Int = $00000020
+Const VK_SAMPLE_COUNT_64_BIT:Int = $00000040
+Const VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkQueueFlagBits
+Const VK_QUEUE_GRAPHICS_BIT:Int = $00000001
+Const VK_QUEUE_COMPUTE_BIT:Int = $00000002
+Const VK_QUEUE_TRANSFER_BIT:Int = $00000004
+Const VK_QUEUE_SPARSE_BINDING_BIT:Int = $00000008
+Const VK_QUEUE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkMemoryPropertyFlagBits
+Const VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT:Int = $00000001
+Const VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT:Int = $00000002
+Const VK_MEMORY_PROPERTY_HOST_COHERENT_BIT:Int = $00000004
+Const VK_MEMORY_PROPERTY_HOST_CACHED_BIT:Int = $00000008
+Const VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT:Int = $00000010
+Const VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkMemoryHeapFlagBits
+Const VK_MEMORY_HEAP_DEVICE_LOCAL_BIT:Int = $00000001
+Const VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkPipelineStageFlagBits
+Const VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT:Int = $00000001
+Const VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT:Int = $00000002
+Const VK_PIPELINE_STAGE_VERTEX_INPUT_BIT:Int = $00000004
+Const VK_PIPELINE_STAGE_VERTEX_SHADER_BIT:Int = $00000008
+Const VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT:Int = $00000010
+Const VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT:Int = $00000020
+Const VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT:Int = $00000040
+Const VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT:Int = $00000080
+Const VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT:Int = $00000100
+Const VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT:Int = $00000200
+Const VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT:Int = $00000400
+Const VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT:Int = $00000800
+Const VK_PIPELINE_STAGE_TRANSFER_BIT:Int = $00001000
+Const VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT:Int = $00002000
+Const VK_PIPELINE_STAGE_HOST_BIT:Int = $00004000
+Const VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT:Int = $00008000
+Const VK_PIPELINE_STAGE_ALL_COMMANDS_BIT:Int = $00010000
+Const VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkImageAspectFlagBits
+Const VK_IMAGE_ASPECT_COLOR_BIT:Int = $00000001
+Const VK_IMAGE_ASPECT_DEPTH_BIT:Int = $00000002
+Const VK_IMAGE_ASPECT_STENCIL_BIT:Int = $00000004
+Const VK_IMAGE_ASPECT_METADATA_BIT:Int = $00000008
+Const VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkSparseImageFormatFlagBits
+Const VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT:Int = $00000001
+Const VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT:Int = $00000002
+Const VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT:Int = $00000004
+Const VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkSparseMemoryBindFlagBits
+Const VK_SPARSE_MEMORY_BIND_METADATA_BIT:Int = $00000001
+Const VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkFenceCreateFlagBits
+Const VK_FENCE_CREATE_SIGNALED_BIT:Int = $00000001
+Const VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkQueryPipelineStatisticFlagBits
+Const VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT:Int = $00000001
+Const VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT:Int = $00000002
+Const VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT:Int = $00000004
+Const VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT:Int = $00000008
+Const VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT:Int = $00000010
+Const VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT:Int = $00000020
+Const VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT:Int = $00000040
+Const VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT:Int = $00000080
+Const VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT:Int = $00000100
+Const VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT:Int = $00000200
+Const VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT:Int = $00000400
+Const VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkQueryResultFlagBits
+Const VK_QUERY_RESULT_64_BIT:Int = $00000001
+Const VK_QUERY_RESULT_WAIT_BIT:Int = $00000002
+Const VK_QUERY_RESULT_WITH_AVAILABILITY_BIT:Int = $00000004
+Const VK_QUERY_RESULT_PARTIAL_BIT:Int = $00000008
+Const VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkBufferCreateFlagBits
+Const VK_BUFFER_CREATE_SPARSE_BINDING_BIT:Int = $00000001
+Const VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT:Int = $00000002
+Const VK_BUFFER_CREATE_SPARSE_ALIASED_BIT:Int = $00000004
+Const VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkBufferUsageFlagBits
+Const VK_BUFFER_USAGE_TRANSFER_SRC_BIT:Int = $00000001
+Const VK_BUFFER_USAGE_TRANSFER_DST_BIT:Int = $00000002
+Const VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT:Int = $00000004
+Const VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT:Int = $00000008
+Const VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT:Int = $00000010
+Const VK_BUFFER_USAGE_STORAGE_BUFFER_BIT:Int = $00000020
+Const VK_BUFFER_USAGE_INDEX_BUFFER_BIT:Int = $00000040
+Const VK_BUFFER_USAGE_VERTEX_BUFFER_BIT:Int = $00000080
+Const VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT:Int = $00000100
+Const VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkPipelineCreateFlagBits
+Const VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT:Int = $00000001
+Const VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT:Int = $00000002
+Const VK_PIPELINE_CREATE_DERIVATIVE_BIT:Int = $00000004
+Const VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkShaderStageFlagBits
+Const VK_SHADER_STAGE_VERTEX_BIT:Int = $00000001
+Const VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:Int = $00000002
+Const VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:Int = $00000004
+Const VK_SHADER_STAGE_GEOMETRY_BIT:Int = $00000008
+Const VK_SHADER_STAGE_FRAGMENT_BIT:Int = $00000010
+Const VK_SHADER_STAGE_COMPUTE_BIT:Int = $00000020
+Const VK_SHADER_STAGE_ALL_GRAPHICS:Int = $0000001F
+Const VK_SHADER_STAGE_ALL:Int = $7FFFFFFF
+Const VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkCullModeFlagBits
+Const VK_CULL_MODE_NONE:Int = 0
+Const VK_CULL_MODE_FRONT_BIT:Int = $00000001
+Const VK_CULL_MODE_BACK_BIT:Int = $00000002
+Const VK_CULL_MODE_FRONT_AND_BACK:Int = $00000003
+Const VK_CULL_MODE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkColorComponentFlagBits
+Const VK_COLOR_COMPONENT_R_BIT:Int = $00000001
+Const VK_COLOR_COMPONENT_G_BIT:Int = $00000002
+Const VK_COLOR_COMPONENT_B_BIT:Int = $00000004
+Const VK_COLOR_COMPONENT_A_BIT:Int = $00000008
+Const VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkDescriptorPoolCreateFlagBits
+Const VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT:Int = $00000001
+Const VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkAttachmentDescriptionFlagBits
+Const VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT:Int = $00000001
+Const VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkAccessFlagBits
+Const VK_ACCESS_INDIRECT_COMMAND_READ_BIT:Int = $00000001
+Const VK_ACCESS_INDEX_READ_BIT:Int = $00000002
+Const VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT:Int = $00000004
+Const VK_ACCESS_UNIFORM_READ_BIT:Int = $00000008
+Const VK_ACCESS_INPUT_ATTACHMENT_READ_BIT:Int = $00000010
+Const VK_ACCESS_SHADER_READ_BIT:Int = $00000020
+Const VK_ACCESS_SHADER_WRITE_BIT:Int = $00000040
+Const VK_ACCESS_COLOR_ATTACHMENT_READ_BIT:Int = $00000080
+Const VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT:Int = $00000100
+Const VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT:Int = $00000200
+Const VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT:Int = $00000400
+Const VK_ACCESS_TRANSFER_READ_BIT:Int = $00000800
+Const VK_ACCESS_TRANSFER_WRITE_BIT:Int = $00001000
+Const VK_ACCESS_HOST_READ_BIT:Int = $00002000
+Const VK_ACCESS_HOST_WRITE_BIT:Int = $00004000
+Const VK_ACCESS_MEMORY_READ_BIT:Int = $00008000
+Const VK_ACCESS_MEMORY_WRITE_BIT:Int = $00010000
+Const VK_ACCESS_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkDependencyFlagBits
+Const VK_DEPENDENCY_BY_REGION_BIT:Int = $00000001
+Const VK_DEPENDENCY_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkCommandPoolCreateFlagBits
+Const VK_COMMAND_POOL_CREATE_TRANSIENT_BIT:Int = $00000001
+Const VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT:Int = $00000002
+Const VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkCommandPoolResetFlagBits
+Const VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT:Int = $00000001
+Const VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkCommandBufferUsageFlagBits
+Const VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT:Int = $00000001
+Const VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT:Int = $00000002
+Const VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT:Int = $00000004
+Const VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkQueryControlFlagBits
+Const VK_QUERY_CONTROL_PRECISE_BIT:Int = $00000001
+Const VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkCommandBufferResetFlagBits
+Const VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT:Int = $00000001
+Const VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+' VkStencilFaceFlagBits
+Const VK_STENCIL_FACE_FRONT_BIT:Int = $00000001
+Const VK_STENCIL_FACE_BACK_BIT:Int = $00000002
+Const VK_STENCIL_FRONT_AND_BACK:Int = $00000003
+Const VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM:Int = $7FFFFFFF
+
+Type VkApplicationInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field pApplicationName:Byte Ptr
+	Field applicationVersion:UInt
+	Field pEngineName:Byte Ptr
+	Field engineVersion:UInt
+	Field apiVersion:UInt
+EndType
+Type VkInstanceCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field pApplicationInfo:Byte Ptr
+	Field enabledLayerCount:UInt
+	Field ppEnabledLayerNames:Byte Ptr
+	Field enabledExtensionCount:UInt
+	Field ppEnabledExtensionNames:Byte Ptr
+EndType
+Type VkAllocationCallbacks
+	Field pUserData:Byte Ptr
+	Field pfnAllocation:Byte Ptr
+	Field pfnReallocation:Byte Ptr
+	Field pfnFree:Byte Ptr
+	Field pfnInternalAllocation:Byte Ptr
+	Field pfnInternalFree:Byte Ptr
+EndType
+Type VkPhysicalDeviceFeatures
+	Field robustBufferAccess:UInt
+	Field fullDrawIndexUint32:UInt
+	Field imageCubeArray:UInt
+	Field independentBlend:UInt
+	Field geometryShader:UInt
+	Field tessellationShader:UInt
+	Field sampleRateShading:UInt
+	Field dualSrcBlend:UInt
+	Field logicOp:UInt
+	Field multiDrawIndirect:UInt
+	Field drawIndirectFirstInstance:UInt
+	Field depthClamp:UInt
+	Field depthBiasClamp:UInt
+	Field fillModeNonSolid:UInt
+	Field depthBounds:UInt
+	Field wideLines:UInt
+	Field largePoints:UInt
+	Field alphaToOne:UInt
+	Field multiViewport:UInt
+	Field samplerAnisotropy:UInt
+	Field textureCompressionETC2:UInt
+	Field textureCompressionASTC_LDR:UInt
+	Field textureCompressionBC:UInt
+	Field occlusionQueryPrecise:UInt
+	Field pipelineStatisticsQuery:UInt
+	Field vertexPipelineStoresAndAtomics:UInt
+	Field fragmentStoresAndAtomics:UInt
+	Field shaderTessellationAndGeometryPointSize:UInt
+	Field shaderImageGatherExtended:UInt
+	Field shaderStorageImageExtendedFormats:UInt
+	Field shaderStorageImageMultisample:UInt
+	Field shaderStorageImageReadWithoutFormat:UInt
+	Field shaderStorageImageWriteWithoutFormat:UInt
+	Field shaderUniformBufferArrayDynamicIndexing:UInt
+	Field shaderSampledImageArrayDynamicIndexing:UInt
+	Field shaderStorageBufferArrayDynamicIndexing:UInt
+	Field shaderStorageImageArrayDynamicIndexing:UInt
+	Field shaderClipDistance:UInt
+	Field shaderCullDistance:UInt
+	Field shaderFloat64:UInt
+	Field shaderInt64:UInt
+	Field shaderInt16:UInt
+	Field shaderResourceResidency:UInt
+	Field shaderResourceMinLod:UInt
+	Field sparseBinding:UInt
+	Field sparseResidencyBuffer:UInt
+	Field sparseResidencyImage2D:UInt
+	Field sparseResidencyImage3D:UInt
+	Field sparseResidency2Samples:UInt
+	Field sparseResidency4Samples:UInt
+	Field sparseResidency8Samples:UInt
+	Field sparseResidency16Samples:UInt
+	Field sparseResidencyAliased:UInt
+	Field variableMultisampleRate:UInt
+	Field inheritedQueries:UInt
+EndType
+Type VkFormatProperties
+	Field linearTilingFeatures:UInt
+	Field optimalTilingFeatures:UInt
+	Field bufferFeatures:UInt
+EndType
+Type VkExtent3D
+	Field width:UInt
+	Field height:UInt
+	Field depth:UInt
+EndType
+Type VkImageFormatProperties
+	Field maxExtent_width:UInt
+	Field maxExtent_height:UInt
+	Field maxExtent_depth:UInt
+	Field maxMipLevels:UInt
+	Field maxArrayLayers:UInt
+	Field sampleCounts:UInt
+	Field maxResourceSize:ULong
+EndType
+Type VkPhysicalDeviceLimits
+	Field maxImageDimension1D:UInt
+	Field maxImageDimension2D:UInt
+	Field maxImageDimension3D:UInt
+	Field maxImageDimensionCube:UInt
+	Field maxImageArrayLayers:UInt
+	Field maxTexelBufferElements:UInt
+	Field maxUniformBufferRange:UInt
+	Field maxStorageBufferRange:UInt
+	Field maxPushConstantsSize:UInt
+	Field maxMemoryAllocationCount:UInt
+	Field maxSamplerAllocationCount:UInt
+	Field bufferImageGranularity:ULong
+	Field sparseAddressSpaceSize:ULong
+	Field maxBoundDescriptorSets:UInt
+	Field maxPerStageDescriptorSamplers:UInt
+	Field maxPerStageDescriptorUniformBuffers:UInt
+	Field maxPerStageDescriptorStorageBuffers:UInt
+	Field maxPerStageDescriptorSampledImages:UInt
+	Field maxPerStageDescriptorStorageImages:UInt
+	Field maxPerStageDescriptorInputAttachments:UInt
+	Field maxPerStageResources:UInt
+	Field maxDescriptorSetSamplers:UInt
+	Field maxDescriptorSetUniformBuffers:UInt
+	Field maxDescriptorSetUniformBuffersDynamic:UInt
+	Field maxDescriptorSetStorageBuffers:UInt
+	Field maxDescriptorSetStorageBuffersDynamic:UInt
+	Field maxDescriptorSetSampledImages:UInt
+	Field maxDescriptorSetStorageImages:UInt
+	Field maxDescriptorSetInputAttachments:UInt
+	Field maxVertexInputAttributes:UInt
+	Field maxVertexInputBindings:UInt
+	Field maxVertexInputAttributeOffset:UInt
+	Field maxVertexInputBindingStride:UInt
+	Field maxVertexOutputComponents:UInt
+	Field maxTessellationGenerationLevel:UInt
+	Field maxTessellationPatchSize:UInt
+	Field maxTessellationControlPerVertexInputComponents:UInt
+	Field maxTessellationControlPerVertexOutputComponents:UInt
+	Field maxTessellationControlPerPatchOutputComponents:UInt
+	Field maxTessellationControlTotalOutputComponents:UInt
+	Field maxTessellationEvaluationInputComponents:UInt
+	Field maxTessellationEvaluationOutputComponents:UInt
+	Field maxGeometryShaderInvocations:UInt
+	Field maxGeometryInputComponents:UInt
+	Field maxGeometryOutputComponents:UInt
+	Field maxGeometryOutputVertices:UInt
+	Field maxGeometryTotalOutputComponents:UInt
+	Field maxFragmentInputComponents:UInt
+	Field maxFragmentOutputAttachments:UInt
+	Field maxFragmentDualSrcAttachments:UInt
+	Field maxFragmentCombinedOutputResources:UInt
+	Field maxComputeSharedMemorySize:UInt
+	Field maxComputeWorkGroupCount_0:UInt
+	Field maxComputeWorkGroupCount_1:UInt
+	Field maxComputeWorkGroupCount_2:UInt
+	Field maxComputeWorkGroupInvocations:UInt
+	Field maxComputeWorkGroupSize_0:UInt
+	Field maxComputeWorkGroupSize_1:UInt
+	Field maxComputeWorkGroupSize_2:UInt
+	Field subPixelPrecisionBits:UInt
+	Field subTexelPrecisionBits:UInt
+	Field mipmapPrecisionBits:UInt
+	Field maxDrawIndexedIndexValue:UInt
+	Field maxDrawIndirectCount:UInt
+	Field maxSamplerLodBias:Float
+	Field maxSamplerAnisotropy:Float
+	Field maxViewports:UInt
+	Field maxViewportDimensions_0:UInt
+	Field maxViewportDimensions_1:UInt
+	Field viewportBoundsRange_0:Float
+	Field viewportBoundsRange_1:Float
+	Field viewportSubPixelBits:UInt
+	Field minMemoryMapAlignment:Size_T
+	Field minTexelBufferOffsetAlignment:ULong
+	Field minUniformBufferOffsetAlignment:ULong
+	Field minStorageBufferOffsetAlignment:ULong
+	Field minTexelOffset:Int
+	Field maxTexelOffset:UInt
+	Field minTexelGatherOffset:Int
+	Field maxTexelGatherOffset:UInt
+	Field minInterpolationOffset:Float
+	Field maxInterpolationOffset:Float
+	Field subPixelInterpolationOffsetBits:UInt
+	Field maxFramebufferWidth:UInt
+	Field maxFramebufferHeight:UInt
+	Field maxFramebufferLayers:UInt
+	Field framebufferColorSampleCounts:UInt
+	Field framebufferDepthSampleCounts:UInt
+	Field framebufferStencilSampleCounts:UInt
+	Field framebufferNoAttachmentsSampleCounts:UInt
+	Field maxColorAttachments:UInt
+	Field sampledImageColorSampleCounts:UInt
+	Field sampledImageIntegerSampleCounts:UInt
+	Field sampledImageDepthSampleCounts:UInt
+	Field sampledImageStencilSampleCounts:UInt
+	Field storageImageSampleCounts:UInt
+	Field maxSampleMaskWords:UInt
+	Field timestampComputeAndGraphics:UInt
+	Field timestampPeriod:Float
+	Field maxClipDistances:UInt
+	Field maxCullDistances:UInt
+	Field maxCombinedClipAndCullDistances:UInt
+	Field discreteQueuePriorities:UInt
+	Field pointSizeRange_0:Float
+	Field pointSizeRange_1:Float
+	Field lineWidthRange_0:Float
+	Field lineWidthRange_1:Float
+	Field pointSizeGranularity:Float
+	Field lineWidthGranularity:Float
+	Field strictLines:UInt
+	Field standardSampleLocations:UInt
+	Field optimalBufferCopyOffsetAlignment:ULong
+	Field optimalBufferCopyRowPitchAlignment:ULong
+	Field nonCoherentAtomSize:ULong
+EndType
+Type VkPhysicalDeviceSparseProperties
+	Field residencyStandard2DBlockShape:UInt
+	Field residencyStandard2DMultisampleBlockShape:UInt
+	Field residencyStandard3DBlockShape:UInt
+	Field residencyAlignedMipSize:UInt
+	Field residencyNonResidentStrict:UInt
+EndType
+Type VkPhysicalDeviceProperties
+	Field apiVersion:UInt
+	Field driverVersion:UInt
+	Field vendorID:UInt
+	Field deviceID:UInt
+	Field deviceType:Int
+	Field deviceName_0:Byte
+	Field deviceName_1:Byte
+	Field deviceName_2:Byte
+	Field deviceName_3:Byte
+	Field deviceName_4:Byte
+	Field deviceName_5:Byte
+	Field deviceName_6:Byte
+	Field deviceName_7:Byte
+	Field deviceName_8:Byte
+	Field deviceName_9:Byte
+	Field deviceName_10:Byte
+	Field deviceName_11:Byte
+	Field deviceName_12:Byte
+	Field deviceName_13:Byte
+	Field deviceName_14:Byte
+	Field deviceName_15:Byte
+	Field deviceName_16:Byte
+	Field deviceName_17:Byte
+	Field deviceName_18:Byte
+	Field deviceName_19:Byte
+	Field deviceName_20:Byte
+	Field deviceName_21:Byte
+	Field deviceName_22:Byte
+	Field deviceName_23:Byte
+	Field deviceName_24:Byte
+	Field deviceName_25:Byte
+	Field deviceName_26:Byte
+	Field deviceName_27:Byte
+	Field deviceName_28:Byte
+	Field deviceName_29:Byte
+	Field deviceName_30:Byte
+	Field deviceName_31:Byte
+	Field deviceName_32:Byte
+	Field deviceName_33:Byte
+	Field deviceName_34:Byte
+	Field deviceName_35:Byte
+	Field deviceName_36:Byte
+	Field deviceName_37:Byte
+	Field deviceName_38:Byte
+	Field deviceName_39:Byte
+	Field deviceName_40:Byte
+	Field deviceName_41:Byte
+	Field deviceName_42:Byte
+	Field deviceName_43:Byte
+	Field deviceName_44:Byte
+	Field deviceName_45:Byte
+	Field deviceName_46:Byte
+	Field deviceName_47:Byte
+	Field deviceName_48:Byte
+	Field deviceName_49:Byte
+	Field deviceName_50:Byte
+	Field deviceName_51:Byte
+	Field deviceName_52:Byte
+	Field deviceName_53:Byte
+	Field deviceName_54:Byte
+	Field deviceName_55:Byte
+	Field deviceName_56:Byte
+	Field deviceName_57:Byte
+	Field deviceName_58:Byte
+	Field deviceName_59:Byte
+	Field deviceName_60:Byte
+	Field deviceName_61:Byte
+	Field deviceName_62:Byte
+	Field deviceName_63:Byte
+	Field deviceName_64:Byte
+	Field deviceName_65:Byte
+	Field deviceName_66:Byte
+	Field deviceName_67:Byte
+	Field deviceName_68:Byte
+	Field deviceName_69:Byte
+	Field deviceName_70:Byte
+	Field deviceName_71:Byte
+	Field deviceName_72:Byte
+	Field deviceName_73:Byte
+	Field deviceName_74:Byte
+	Field deviceName_75:Byte
+	Field deviceName_76:Byte
+	Field deviceName_77:Byte
+	Field deviceName_78:Byte
+	Field deviceName_79:Byte
+	Field deviceName_80:Byte
+	Field deviceName_81:Byte
+	Field deviceName_82:Byte
+	Field deviceName_83:Byte
+	Field deviceName_84:Byte
+	Field deviceName_85:Byte
+	Field deviceName_86:Byte
+	Field deviceName_87:Byte
+	Field deviceName_88:Byte
+	Field deviceName_89:Byte
+	Field deviceName_90:Byte
+	Field deviceName_91:Byte
+	Field deviceName_92:Byte
+	Field deviceName_93:Byte
+	Field deviceName_94:Byte
+	Field deviceName_95:Byte
+	Field deviceName_96:Byte
+	Field deviceName_97:Byte
+	Field deviceName_98:Byte
+	Field deviceName_99:Byte
+	Field deviceName_100:Byte
+	Field deviceName_101:Byte
+	Field deviceName_102:Byte
+	Field deviceName_103:Byte
+	Field deviceName_104:Byte
+	Field deviceName_105:Byte
+	Field deviceName_106:Byte
+	Field deviceName_107:Byte
+	Field deviceName_108:Byte
+	Field deviceName_109:Byte
+	Field deviceName_110:Byte
+	Field deviceName_111:Byte
+	Field deviceName_112:Byte
+	Field deviceName_113:Byte
+	Field deviceName_114:Byte
+	Field deviceName_115:Byte
+	Field deviceName_116:Byte
+	Field deviceName_117:Byte
+	Field deviceName_118:Byte
+	Field deviceName_119:Byte
+	Field deviceName_120:Byte
+	Field deviceName_121:Byte
+	Field deviceName_122:Byte
+	Field deviceName_123:Byte
+	Field deviceName_124:Byte
+	Field deviceName_125:Byte
+	Field deviceName_126:Byte
+	Field deviceName_127:Byte
+	Field deviceName_128:Byte
+	Field deviceName_129:Byte
+	Field deviceName_130:Byte
+	Field deviceName_131:Byte
+	Field deviceName_132:Byte
+	Field deviceName_133:Byte
+	Field deviceName_134:Byte
+	Field deviceName_135:Byte
+	Field deviceName_136:Byte
+	Field deviceName_137:Byte
+	Field deviceName_138:Byte
+	Field deviceName_139:Byte
+	Field deviceName_140:Byte
+	Field deviceName_141:Byte
+	Field deviceName_142:Byte
+	Field deviceName_143:Byte
+	Field deviceName_144:Byte
+	Field deviceName_145:Byte
+	Field deviceName_146:Byte
+	Field deviceName_147:Byte
+	Field deviceName_148:Byte
+	Field deviceName_149:Byte
+	Field deviceName_150:Byte
+	Field deviceName_151:Byte
+	Field deviceName_152:Byte
+	Field deviceName_153:Byte
+	Field deviceName_154:Byte
+	Field deviceName_155:Byte
+	Field deviceName_156:Byte
+	Field deviceName_157:Byte
+	Field deviceName_158:Byte
+	Field deviceName_159:Byte
+	Field deviceName_160:Byte
+	Field deviceName_161:Byte
+	Field deviceName_162:Byte
+	Field deviceName_163:Byte
+	Field deviceName_164:Byte
+	Field deviceName_165:Byte
+	Field deviceName_166:Byte
+	Field deviceName_167:Byte
+	Field deviceName_168:Byte
+	Field deviceName_169:Byte
+	Field deviceName_170:Byte
+	Field deviceName_171:Byte
+	Field deviceName_172:Byte
+	Field deviceName_173:Byte
+	Field deviceName_174:Byte
+	Field deviceName_175:Byte
+	Field deviceName_176:Byte
+	Field deviceName_177:Byte
+	Field deviceName_178:Byte
+	Field deviceName_179:Byte
+	Field deviceName_180:Byte
+	Field deviceName_181:Byte
+	Field deviceName_182:Byte
+	Field deviceName_183:Byte
+	Field deviceName_184:Byte
+	Field deviceName_185:Byte
+	Field deviceName_186:Byte
+	Field deviceName_187:Byte
+	Field deviceName_188:Byte
+	Field deviceName_189:Byte
+	Field deviceName_190:Byte
+	Field deviceName_191:Byte
+	Field deviceName_192:Byte
+	Field deviceName_193:Byte
+	Field deviceName_194:Byte
+	Field deviceName_195:Byte
+	Field deviceName_196:Byte
+	Field deviceName_197:Byte
+	Field deviceName_198:Byte
+	Field deviceName_199:Byte
+	Field deviceName_200:Byte
+	Field deviceName_201:Byte
+	Field deviceName_202:Byte
+	Field deviceName_203:Byte
+	Field deviceName_204:Byte
+	Field deviceName_205:Byte
+	Field deviceName_206:Byte
+	Field deviceName_207:Byte
+	Field deviceName_208:Byte
+	Field deviceName_209:Byte
+	Field deviceName_210:Byte
+	Field deviceName_211:Byte
+	Field deviceName_212:Byte
+	Field deviceName_213:Byte
+	Field deviceName_214:Byte
+	Field deviceName_215:Byte
+	Field deviceName_216:Byte
+	Field deviceName_217:Byte
+	Field deviceName_218:Byte
+	Field deviceName_219:Byte
+	Field deviceName_220:Byte
+	Field deviceName_221:Byte
+	Field deviceName_222:Byte
+	Field deviceName_223:Byte
+	Field deviceName_224:Byte
+	Field deviceName_225:Byte
+	Field deviceName_226:Byte
+	Field deviceName_227:Byte
+	Field deviceName_228:Byte
+	Field deviceName_229:Byte
+	Field deviceName_230:Byte
+	Field deviceName_231:Byte
+	Field deviceName_232:Byte
+	Field deviceName_233:Byte
+	Field deviceName_234:Byte
+	Field deviceName_235:Byte
+	Field deviceName_236:Byte
+	Field deviceName_237:Byte
+	Field deviceName_238:Byte
+	Field deviceName_239:Byte
+	Field deviceName_240:Byte
+	Field deviceName_241:Byte
+	Field deviceName_242:Byte
+	Field deviceName_243:Byte
+	Field deviceName_244:Byte
+	Field deviceName_245:Byte
+	Field deviceName_246:Byte
+	Field deviceName_247:Byte
+	Field deviceName_248:Byte
+	Field deviceName_249:Byte
+	Field deviceName_250:Byte
+	Field deviceName_251:Byte
+	Field deviceName_252:Byte
+	Field deviceName_253:Byte
+	Field deviceName_254:Byte
+	Field deviceName_255:Byte
+	Field pipelineCacheUUID_0:Byte
+	Field pipelineCacheUUID_1:Byte
+	Field pipelineCacheUUID_2:Byte
+	Field pipelineCacheUUID_3:Byte
+	Field pipelineCacheUUID_4:Byte
+	Field pipelineCacheUUID_5:Byte
+	Field pipelineCacheUUID_6:Byte
+	Field pipelineCacheUUID_7:Byte
+	Field pipelineCacheUUID_8:Byte
+	Field pipelineCacheUUID_9:Byte
+	Field pipelineCacheUUID_10:Byte
+	Field pipelineCacheUUID_11:Byte
+	Field pipelineCacheUUID_12:Byte
+	Field pipelineCacheUUID_13:Byte
+	Field pipelineCacheUUID_14:Byte
+	Field pipelineCacheUUID_15:Byte
+	Field _compileralignmentpadding0:UInt
+	Field limits_maxImageDimension1D:UInt
+	Field limits_maxImageDimension2D:UInt
+	Field limits_maxImageDimension3D:UInt
+	Field limits_maxImageDimensionCube:UInt
+	Field limits_maxImageArrayLayers:UInt
+	Field limits_maxTexelBufferElements:UInt
+	Field limits_maxUniformBufferRange:UInt
+	Field limits_maxStorageBufferRange:UInt
+	Field limits_maxPushConstantsSize:UInt
+	Field limits_maxMemoryAllocationCount:UInt
+	Field limits_maxSamplerAllocationCount:UInt
+	Field limits_bufferImageGranularity:ULong
+	Field limits_sparseAddressSpaceSize:ULong
+	Field limits_maxBoundDescriptorSets:UInt
+	Field limits_maxPerStageDescriptorSamplers:UInt
+	Field limits_maxPerStageDescriptorUniformBuffers:UInt
+	Field limits_maxPerStageDescriptorStorageBuffers:UInt
+	Field limits_maxPerStageDescriptorSampledImages:UInt
+	Field limits_maxPerStageDescriptorStorageImages:UInt
+	Field limits_maxPerStageDescriptorInputAttachments:UInt
+	Field limits_maxPerStageResources:UInt
+	Field limits_maxDescriptorSetSamplers:UInt
+	Field limits_maxDescriptorSetUniformBuffers:UInt
+	Field limits_maxDescriptorSetUniformBuffersDynamic:UInt
+	Field limits_maxDescriptorSetStorageBuffers:UInt
+	Field limits_maxDescriptorSetStorageBuffersDynamic:UInt
+	Field limits_maxDescriptorSetSampledImages:UInt
+	Field limits_maxDescriptorSetStorageImages:UInt
+	Field limits_maxDescriptorSetInputAttachments:UInt
+	Field limits_maxVertexInputAttributes:UInt
+	Field limits_maxVertexInputBindings:UInt
+	Field limits_maxVertexInputAttributeOffset:UInt
+	Field limits_maxVertexInputBindingStride:UInt
+	Field limits_maxVertexOutputComponents:UInt
+	Field limits_maxTessellationGenerationLevel:UInt
+	Field limits_maxTessellationPatchSize:UInt
+	Field limits_maxTessellationControlPerVertexInputComponents:UInt
+	Field limits_maxTessellationControlPerVertexOutputComponents:UInt
+	Field limits_maxTessellationControlPerPatchOutputComponents:UInt
+	Field limits_maxTessellationControlTotalOutputComponents:UInt
+	Field limits_maxTessellationEvaluationInputComponents:UInt
+	Field limits_maxTessellationEvaluationOutputComponents:UInt
+	Field limits_maxGeometryShaderInvocations:UInt
+	Field limits_maxGeometryInputComponents:UInt
+	Field limits_maxGeometryOutputComponents:UInt
+	Field limits_maxGeometryOutputVertices:UInt
+	Field limits_maxGeometryTotalOutputComponents:UInt
+	Field limits_maxFragmentInputComponents:UInt
+	Field limits_maxFragmentOutputAttachments:UInt
+	Field limits_maxFragmentDualSrcAttachments:UInt
+	Field limits_maxFragmentCombinedOutputResources:UInt
+	Field limits_maxComputeSharedMemorySize:UInt
+	Field limits_maxComputeWorkGroupCount_0:UInt
+	Field limits_maxComputeWorkGroupCount_1:UInt
+	Field limits_maxComputeWorkGroupCount_2:UInt
+	Field limits_maxComputeWorkGroupInvocations:UInt
+	Field limits_maxComputeWorkGroupSize_0:UInt
+	Field limits_maxComputeWorkGroupSize_1:UInt
+	Field limits_maxComputeWorkGroupSize_2:UInt
+	Field limits_subPixelPrecisionBits:UInt
+	Field limits_subTexelPrecisionBits:UInt
+	Field limits_mipmapPrecisionBits:UInt
+	Field limits_maxDrawIndexedIndexValue:UInt
+	Field limits_maxDrawIndirectCount:UInt
+	Field limits_maxSamplerLodBias:Float
+	Field limits_maxSamplerAnisotropy:Float
+	Field limits_maxViewports:UInt
+	Field limits_maxViewportDimensions_0:UInt
+	Field limits_maxViewportDimensions_1:UInt
+	Field limits_viewportBoundsRange_0:Float
+	Field limits_viewportBoundsRange_1:Float
+	Field limits_viewportSubPixelBits:UInt
+	Field limits_minMemoryMapAlignment:Size_T
+	Field limits_minTexelBufferOffsetAlignment:ULong
+	Field limits_minUniformBufferOffsetAlignment:ULong
+	Field limits_minStorageBufferOffsetAlignment:ULong
+	Field limits_minTexelOffset:Int
+	Field limits_maxTexelOffset:UInt
+	Field limits_minTexelGatherOffset:Int
+	Field limits_maxTexelGatherOffset:UInt
+	Field limits_minInterpolationOffset:Float
+	Field limits_maxInterpolationOffset:Float
+	Field limits_subPixelInterpolationOffsetBits:UInt
+	Field limits_maxFramebufferWidth:UInt
+	Field limits_maxFramebufferHeight:UInt
+	Field limits_maxFramebufferLayers:UInt
+	Field limits_framebufferColorSampleCounts:UInt
+	Field limits_framebufferDepthSampleCounts:UInt
+	Field limits_framebufferStencilSampleCounts:UInt
+	Field limits_framebufferNoAttachmentsSampleCounts:UInt
+	Field limits_maxColorAttachments:UInt
+	Field limits_sampledImageColorSampleCounts:UInt
+	Field limits_sampledImageIntegerSampleCounts:UInt
+	Field limits_sampledImageDepthSampleCounts:UInt
+	Field limits_sampledImageStencilSampleCounts:UInt
+	Field limits_storageImageSampleCounts:UInt
+	Field limits_maxSampleMaskWords:UInt
+	Field limits_timestampComputeAndGraphics:UInt
+	Field limits_timestampPeriod:Float
+	Field limits_maxClipDistances:UInt
+	Field limits_maxCullDistances:UInt
+	Field limits_maxCombinedClipAndCullDistances:UInt
+	Field limits_discreteQueuePriorities:UInt
+	Field limits_pointSizeRange_0:Float
+	Field limits_pointSizeRange_1:Float
+	Field limits_lineWidthRange_0:Float
+	Field limits_lineWidthRange_1:Float
+	Field limits_pointSizeGranularity:Float
+	Field limits_lineWidthGranularity:Float
+	Field limits_strictLines:UInt
+	Field limits_standardSampleLocations:UInt
+	Field limits_optimalBufferCopyOffsetAlignment:ULong
+	Field limits_optimalBufferCopyRowPitchAlignment:ULong
+	Field limits_nonCoherentAtomSize:ULong
+	Field sparseProperties_residencyStandard2DBlockShape:UInt
+	Field sparseProperties_residencyStandard2DMultisampleBlockShape:UInt
+	Field sparseProperties_residencyStandard3DBlockShape:UInt
+	Field sparseProperties_residencyAlignedMipSize:UInt
+	Field sparseProperties_residencyNonResidentStrict:UInt
+	Field _compileralignmentpadding1:UInt
+EndType
+Type VkQueueFamilyProperties
+	Field queueFlags:UInt
+	Field queueCount:UInt
+	Field timestampValidBits:UInt
+	Field minImageTransferGranularity_width:UInt
+	Field minImageTransferGranularity_height:UInt
+	Field minImageTransferGranularity_depth:UInt
+EndType
+Type VkMemoryType
+	Field propertyFlags:UInt
+	Field heapIndex:UInt
+EndType
+Type VkMemoryHeap
+	Field size:ULong
+	Field flags:UInt
+EndType
+Type VkPhysicalDeviceMemoryProperties
+	Field memoryTypeCount:UInt
+	Field memoryTypes_propertyFlags_0:UInt
+	Field memoryTypes_heapIndex_0:UInt
+	Field memoryTypes_propertyFlags_1:UInt
+	Field memoryTypes_heapIndex_1:UInt
+	Field memoryTypes_propertyFlags_2:UInt
+	Field memoryTypes_heapIndex_2:UInt
+	Field memoryTypes_propertyFlags_3:UInt
+	Field memoryTypes_heapIndex_3:UInt
+	Field memoryTypes_propertyFlags_4:UInt
+	Field memoryTypes_heapIndex_4:UInt
+	Field memoryTypes_propertyFlags_5:UInt
+	Field memoryTypes_heapIndex_5:UInt
+	Field memoryTypes_propertyFlags_6:UInt
+	Field memoryTypes_heapIndex_6:UInt
+	Field memoryTypes_propertyFlags_7:UInt
+	Field memoryTypes_heapIndex_7:UInt
+	Field memoryTypes_propertyFlags_8:UInt
+	Field memoryTypes_heapIndex_8:UInt
+	Field memoryTypes_propertyFlags_9:UInt
+	Field memoryTypes_heapIndex_9:UInt
+	Field memoryTypes_propertyFlags_10:UInt
+	Field memoryTypes_heapIndex_10:UInt
+	Field memoryTypes_propertyFlags_11:UInt
+	Field memoryTypes_heapIndex_11:UInt
+	Field memoryTypes_propertyFlags_12:UInt
+	Field memoryTypes_heapIndex_12:UInt
+	Field memoryTypes_propertyFlags_13:UInt
+	Field memoryTypes_heapIndex_13:UInt
+	Field memoryTypes_propertyFlags_14:UInt
+	Field memoryTypes_heapIndex_14:UInt
+	Field memoryTypes_propertyFlags_15:UInt
+	Field memoryTypes_heapIndex_15:UInt
+	Field memoryTypes_propertyFlags_16:UInt
+	Field memoryTypes_heapIndex_16:UInt
+	Field memoryTypes_propertyFlags_17:UInt
+	Field memoryTypes_heapIndex_17:UInt
+	Field memoryTypes_propertyFlags_18:UInt
+	Field memoryTypes_heapIndex_18:UInt
+	Field memoryTypes_propertyFlags_19:UInt
+	Field memoryTypes_heapIndex_19:UInt
+	Field memoryTypes_propertyFlags_20:UInt
+	Field memoryTypes_heapIndex_20:UInt
+	Field memoryTypes_propertyFlags_21:UInt
+	Field memoryTypes_heapIndex_21:UInt
+	Field memoryTypes_propertyFlags_22:UInt
+	Field memoryTypes_heapIndex_22:UInt
+	Field memoryTypes_propertyFlags_23:UInt
+	Field memoryTypes_heapIndex_23:UInt
+	Field memoryTypes_propertyFlags_24:UInt
+	Field memoryTypes_heapIndex_24:UInt
+	Field memoryTypes_propertyFlags_25:UInt
+	Field memoryTypes_heapIndex_25:UInt
+	Field memoryTypes_propertyFlags_26:UInt
+	Field memoryTypes_heapIndex_26:UInt
+	Field memoryTypes_propertyFlags_27:UInt
+	Field memoryTypes_heapIndex_27:UInt
+	Field memoryTypes_propertyFlags_28:UInt
+	Field memoryTypes_heapIndex_28:UInt
+	Field memoryTypes_propertyFlags_29:UInt
+	Field memoryTypes_heapIndex_29:UInt
+	Field memoryTypes_propertyFlags_30:UInt
+	Field memoryTypes_heapIndex_30:UInt
+	Field memoryTypes_propertyFlags_31:UInt
+	Field memoryTypes_heapIndex_31:UInt
+	Field memoryHeapCount:UInt
+	Field memoryHeaps_size_0:ULong
+	Field memoryHeaps_flags_0:UInt
+	Field memoryHeaps_size_1:ULong
+	Field memoryHeaps_flags_1:UInt
+	Field memoryHeaps_size_2:ULong
+	Field memoryHeaps_flags_2:UInt
+	Field memoryHeaps_size_3:ULong
+	Field memoryHeaps_flags_3:UInt
+	Field memoryHeaps_size_4:ULong
+	Field memoryHeaps_flags_4:UInt
+	Field memoryHeaps_size_5:ULong
+	Field memoryHeaps_flags_5:UInt
+	Field memoryHeaps_size_6:ULong
+	Field memoryHeaps_flags_6:UInt
+	Field memoryHeaps_size_7:ULong
+	Field memoryHeaps_flags_7:UInt
+	Field memoryHeaps_size_8:ULong
+	Field memoryHeaps_flags_8:UInt
+	Field memoryHeaps_size_9:ULong
+	Field memoryHeaps_flags_9:UInt
+	Field memoryHeaps_size_10:ULong
+	Field memoryHeaps_flags_10:UInt
+	Field memoryHeaps_size_11:ULong
+	Field memoryHeaps_flags_11:UInt
+	Field memoryHeaps_size_12:ULong
+	Field memoryHeaps_flags_12:UInt
+	Field memoryHeaps_size_13:ULong
+	Field memoryHeaps_flags_13:UInt
+	Field memoryHeaps_size_14:ULong
+	Field memoryHeaps_flags_14:UInt
+	Field memoryHeaps_size_15:ULong
+	Field memoryHeaps_flags_15:UInt
+	Field _compileralignmentpadding0:UInt
+EndType
+Type VkDeviceQueueCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field queueFamilyIndex:UInt
+	Field queueCount:UInt
+	Field pQueuePriorities:Float Ptr
+EndType
+Type VkDeviceCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field queueCreateInfoCount:UInt
+	Field pQueueCreateInfos:Byte Ptr
+	Field enabledLayerCount:UInt
+	Field ppEnabledLayerNames:Byte Ptr
+	Field enabledExtensionCount:UInt
+	Field ppEnabledExtensionNames:Byte Ptr
+	Field pEnabledFeatures:Byte Ptr
+EndType
+Type VkExtensionProperties
+	Field extensionName_0:Byte
+	Field extensionName_1:Byte
+	Field extensionName_2:Byte
+	Field extensionName_3:Byte
+	Field extensionName_4:Byte
+	Field extensionName_5:Byte
+	Field extensionName_6:Byte
+	Field extensionName_7:Byte
+	Field extensionName_8:Byte
+	Field extensionName_9:Byte
+	Field extensionName_10:Byte
+	Field extensionName_11:Byte
+	Field extensionName_12:Byte
+	Field extensionName_13:Byte
+	Field extensionName_14:Byte
+	Field extensionName_15:Byte
+	Field extensionName_16:Byte
+	Field extensionName_17:Byte
+	Field extensionName_18:Byte
+	Field extensionName_19:Byte
+	Field extensionName_20:Byte
+	Field extensionName_21:Byte
+	Field extensionName_22:Byte
+	Field extensionName_23:Byte
+	Field extensionName_24:Byte
+	Field extensionName_25:Byte
+	Field extensionName_26:Byte
+	Field extensionName_27:Byte
+	Field extensionName_28:Byte
+	Field extensionName_29:Byte
+	Field extensionName_30:Byte
+	Field extensionName_31:Byte
+	Field extensionName_32:Byte
+	Field extensionName_33:Byte
+	Field extensionName_34:Byte
+	Field extensionName_35:Byte
+	Field extensionName_36:Byte
+	Field extensionName_37:Byte
+	Field extensionName_38:Byte
+	Field extensionName_39:Byte
+	Field extensionName_40:Byte
+	Field extensionName_41:Byte
+	Field extensionName_42:Byte
+	Field extensionName_43:Byte
+	Field extensionName_44:Byte
+	Field extensionName_45:Byte
+	Field extensionName_46:Byte
+	Field extensionName_47:Byte
+	Field extensionName_48:Byte
+	Field extensionName_49:Byte
+	Field extensionName_50:Byte
+	Field extensionName_51:Byte
+	Field extensionName_52:Byte
+	Field extensionName_53:Byte
+	Field extensionName_54:Byte
+	Field extensionName_55:Byte
+	Field extensionName_56:Byte
+	Field extensionName_57:Byte
+	Field extensionName_58:Byte
+	Field extensionName_59:Byte
+	Field extensionName_60:Byte
+	Field extensionName_61:Byte
+	Field extensionName_62:Byte
+	Field extensionName_63:Byte
+	Field extensionName_64:Byte
+	Field extensionName_65:Byte
+	Field extensionName_66:Byte
+	Field extensionName_67:Byte
+	Field extensionName_68:Byte
+	Field extensionName_69:Byte
+	Field extensionName_70:Byte
+	Field extensionName_71:Byte
+	Field extensionName_72:Byte
+	Field extensionName_73:Byte
+	Field extensionName_74:Byte
+	Field extensionName_75:Byte
+	Field extensionName_76:Byte
+	Field extensionName_77:Byte
+	Field extensionName_78:Byte
+	Field extensionName_79:Byte
+	Field extensionName_80:Byte
+	Field extensionName_81:Byte
+	Field extensionName_82:Byte
+	Field extensionName_83:Byte
+	Field extensionName_84:Byte
+	Field extensionName_85:Byte
+	Field extensionName_86:Byte
+	Field extensionName_87:Byte
+	Field extensionName_88:Byte
+	Field extensionName_89:Byte
+	Field extensionName_90:Byte
+	Field extensionName_91:Byte
+	Field extensionName_92:Byte
+	Field extensionName_93:Byte
+	Field extensionName_94:Byte
+	Field extensionName_95:Byte
+	Field extensionName_96:Byte
+	Field extensionName_97:Byte
+	Field extensionName_98:Byte
+	Field extensionName_99:Byte
+	Field extensionName_100:Byte
+	Field extensionName_101:Byte
+	Field extensionName_102:Byte
+	Field extensionName_103:Byte
+	Field extensionName_104:Byte
+	Field extensionName_105:Byte
+	Field extensionName_106:Byte
+	Field extensionName_107:Byte
+	Field extensionName_108:Byte
+	Field extensionName_109:Byte
+	Field extensionName_110:Byte
+	Field extensionName_111:Byte
+	Field extensionName_112:Byte
+	Field extensionName_113:Byte
+	Field extensionName_114:Byte
+	Field extensionName_115:Byte
+	Field extensionName_116:Byte
+	Field extensionName_117:Byte
+	Field extensionName_118:Byte
+	Field extensionName_119:Byte
+	Field extensionName_120:Byte
+	Field extensionName_121:Byte
+	Field extensionName_122:Byte
+	Field extensionName_123:Byte
+	Field extensionName_124:Byte
+	Field extensionName_125:Byte
+	Field extensionName_126:Byte
+	Field extensionName_127:Byte
+	Field extensionName_128:Byte
+	Field extensionName_129:Byte
+	Field extensionName_130:Byte
+	Field extensionName_131:Byte
+	Field extensionName_132:Byte
+	Field extensionName_133:Byte
+	Field extensionName_134:Byte
+	Field extensionName_135:Byte
+	Field extensionName_136:Byte
+	Field extensionName_137:Byte
+	Field extensionName_138:Byte
+	Field extensionName_139:Byte
+	Field extensionName_140:Byte
+	Field extensionName_141:Byte
+	Field extensionName_142:Byte
+	Field extensionName_143:Byte
+	Field extensionName_144:Byte
+	Field extensionName_145:Byte
+	Field extensionName_146:Byte
+	Field extensionName_147:Byte
+	Field extensionName_148:Byte
+	Field extensionName_149:Byte
+	Field extensionName_150:Byte
+	Field extensionName_151:Byte
+	Field extensionName_152:Byte
+	Field extensionName_153:Byte
+	Field extensionName_154:Byte
+	Field extensionName_155:Byte
+	Field extensionName_156:Byte
+	Field extensionName_157:Byte
+	Field extensionName_158:Byte
+	Field extensionName_159:Byte
+	Field extensionName_160:Byte
+	Field extensionName_161:Byte
+	Field extensionName_162:Byte
+	Field extensionName_163:Byte
+	Field extensionName_164:Byte
+	Field extensionName_165:Byte
+	Field extensionName_166:Byte
+	Field extensionName_167:Byte
+	Field extensionName_168:Byte
+	Field extensionName_169:Byte
+	Field extensionName_170:Byte
+	Field extensionName_171:Byte
+	Field extensionName_172:Byte
+	Field extensionName_173:Byte
+	Field extensionName_174:Byte
+	Field extensionName_175:Byte
+	Field extensionName_176:Byte
+	Field extensionName_177:Byte
+	Field extensionName_178:Byte
+	Field extensionName_179:Byte
+	Field extensionName_180:Byte
+	Field extensionName_181:Byte
+	Field extensionName_182:Byte
+	Field extensionName_183:Byte
+	Field extensionName_184:Byte
+	Field extensionName_185:Byte
+	Field extensionName_186:Byte
+	Field extensionName_187:Byte
+	Field extensionName_188:Byte
+	Field extensionName_189:Byte
+	Field extensionName_190:Byte
+	Field extensionName_191:Byte
+	Field extensionName_192:Byte
+	Field extensionName_193:Byte
+	Field extensionName_194:Byte
+	Field extensionName_195:Byte
+	Field extensionName_196:Byte
+	Field extensionName_197:Byte
+	Field extensionName_198:Byte
+	Field extensionName_199:Byte
+	Field extensionName_200:Byte
+	Field extensionName_201:Byte
+	Field extensionName_202:Byte
+	Field extensionName_203:Byte
+	Field extensionName_204:Byte
+	Field extensionName_205:Byte
+	Field extensionName_206:Byte
+	Field extensionName_207:Byte
+	Field extensionName_208:Byte
+	Field extensionName_209:Byte
+	Field extensionName_210:Byte
+	Field extensionName_211:Byte
+	Field extensionName_212:Byte
+	Field extensionName_213:Byte
+	Field extensionName_214:Byte
+	Field extensionName_215:Byte
+	Field extensionName_216:Byte
+	Field extensionName_217:Byte
+	Field extensionName_218:Byte
+	Field extensionName_219:Byte
+	Field extensionName_220:Byte
+	Field extensionName_221:Byte
+	Field extensionName_222:Byte
+	Field extensionName_223:Byte
+	Field extensionName_224:Byte
+	Field extensionName_225:Byte
+	Field extensionName_226:Byte
+	Field extensionName_227:Byte
+	Field extensionName_228:Byte
+	Field extensionName_229:Byte
+	Field extensionName_230:Byte
+	Field extensionName_231:Byte
+	Field extensionName_232:Byte
+	Field extensionName_233:Byte
+	Field extensionName_234:Byte
+	Field extensionName_235:Byte
+	Field extensionName_236:Byte
+	Field extensionName_237:Byte
+	Field extensionName_238:Byte
+	Field extensionName_239:Byte
+	Field extensionName_240:Byte
+	Field extensionName_241:Byte
+	Field extensionName_242:Byte
+	Field extensionName_243:Byte
+	Field extensionName_244:Byte
+	Field extensionName_245:Byte
+	Field extensionName_246:Byte
+	Field extensionName_247:Byte
+	Field extensionName_248:Byte
+	Field extensionName_249:Byte
+	Field extensionName_250:Byte
+	Field extensionName_251:Byte
+	Field extensionName_252:Byte
+	Field extensionName_253:Byte
+	Field extensionName_254:Byte
+	Field extensionName_255:Byte
+	Field specVersion:UInt
+EndType
+Type VkLayerProperties
+	Field layerName_0:Byte
+	Field layerName_1:Byte
+	Field layerName_2:Byte
+	Field layerName_3:Byte
+	Field layerName_4:Byte
+	Field layerName_5:Byte
+	Field layerName_6:Byte
+	Field layerName_7:Byte
+	Field layerName_8:Byte
+	Field layerName_9:Byte
+	Field layerName_10:Byte
+	Field layerName_11:Byte
+	Field layerName_12:Byte
+	Field layerName_13:Byte
+	Field layerName_14:Byte
+	Field layerName_15:Byte
+	Field layerName_16:Byte
+	Field layerName_17:Byte
+	Field layerName_18:Byte
+	Field layerName_19:Byte
+	Field layerName_20:Byte
+	Field layerName_21:Byte
+	Field layerName_22:Byte
+	Field layerName_23:Byte
+	Field layerName_24:Byte
+	Field layerName_25:Byte
+	Field layerName_26:Byte
+	Field layerName_27:Byte
+	Field layerName_28:Byte
+	Field layerName_29:Byte
+	Field layerName_30:Byte
+	Field layerName_31:Byte
+	Field layerName_32:Byte
+	Field layerName_33:Byte
+	Field layerName_34:Byte
+	Field layerName_35:Byte
+	Field layerName_36:Byte
+	Field layerName_37:Byte
+	Field layerName_38:Byte
+	Field layerName_39:Byte
+	Field layerName_40:Byte
+	Field layerName_41:Byte
+	Field layerName_42:Byte
+	Field layerName_43:Byte
+	Field layerName_44:Byte
+	Field layerName_45:Byte
+	Field layerName_46:Byte
+	Field layerName_47:Byte
+	Field layerName_48:Byte
+	Field layerName_49:Byte
+	Field layerName_50:Byte
+	Field layerName_51:Byte
+	Field layerName_52:Byte
+	Field layerName_53:Byte
+	Field layerName_54:Byte
+	Field layerName_55:Byte
+	Field layerName_56:Byte
+	Field layerName_57:Byte
+	Field layerName_58:Byte
+	Field layerName_59:Byte
+	Field layerName_60:Byte
+	Field layerName_61:Byte
+	Field layerName_62:Byte
+	Field layerName_63:Byte
+	Field layerName_64:Byte
+	Field layerName_65:Byte
+	Field layerName_66:Byte
+	Field layerName_67:Byte
+	Field layerName_68:Byte
+	Field layerName_69:Byte
+	Field layerName_70:Byte
+	Field layerName_71:Byte
+	Field layerName_72:Byte
+	Field layerName_73:Byte
+	Field layerName_74:Byte
+	Field layerName_75:Byte
+	Field layerName_76:Byte
+	Field layerName_77:Byte
+	Field layerName_78:Byte
+	Field layerName_79:Byte
+	Field layerName_80:Byte
+	Field layerName_81:Byte
+	Field layerName_82:Byte
+	Field layerName_83:Byte
+	Field layerName_84:Byte
+	Field layerName_85:Byte
+	Field layerName_86:Byte
+	Field layerName_87:Byte
+	Field layerName_88:Byte
+	Field layerName_89:Byte
+	Field layerName_90:Byte
+	Field layerName_91:Byte
+	Field layerName_92:Byte
+	Field layerName_93:Byte
+	Field layerName_94:Byte
+	Field layerName_95:Byte
+	Field layerName_96:Byte
+	Field layerName_97:Byte
+	Field layerName_98:Byte
+	Field layerName_99:Byte
+	Field layerName_100:Byte
+	Field layerName_101:Byte
+	Field layerName_102:Byte
+	Field layerName_103:Byte
+	Field layerName_104:Byte
+	Field layerName_105:Byte
+	Field layerName_106:Byte
+	Field layerName_107:Byte
+	Field layerName_108:Byte
+	Field layerName_109:Byte
+	Field layerName_110:Byte
+	Field layerName_111:Byte
+	Field layerName_112:Byte
+	Field layerName_113:Byte
+	Field layerName_114:Byte
+	Field layerName_115:Byte
+	Field layerName_116:Byte
+	Field layerName_117:Byte
+	Field layerName_118:Byte
+	Field layerName_119:Byte
+	Field layerName_120:Byte
+	Field layerName_121:Byte
+	Field layerName_122:Byte
+	Field layerName_123:Byte
+	Field layerName_124:Byte
+	Field layerName_125:Byte
+	Field layerName_126:Byte
+	Field layerName_127:Byte
+	Field layerName_128:Byte
+	Field layerName_129:Byte
+	Field layerName_130:Byte
+	Field layerName_131:Byte
+	Field layerName_132:Byte
+	Field layerName_133:Byte
+	Field layerName_134:Byte
+	Field layerName_135:Byte
+	Field layerName_136:Byte
+	Field layerName_137:Byte
+	Field layerName_138:Byte
+	Field layerName_139:Byte
+	Field layerName_140:Byte
+	Field layerName_141:Byte
+	Field layerName_142:Byte
+	Field layerName_143:Byte
+	Field layerName_144:Byte
+	Field layerName_145:Byte
+	Field layerName_146:Byte
+	Field layerName_147:Byte
+	Field layerName_148:Byte
+	Field layerName_149:Byte
+	Field layerName_150:Byte
+	Field layerName_151:Byte
+	Field layerName_152:Byte
+	Field layerName_153:Byte
+	Field layerName_154:Byte
+	Field layerName_155:Byte
+	Field layerName_156:Byte
+	Field layerName_157:Byte
+	Field layerName_158:Byte
+	Field layerName_159:Byte
+	Field layerName_160:Byte
+	Field layerName_161:Byte
+	Field layerName_162:Byte
+	Field layerName_163:Byte
+	Field layerName_164:Byte
+	Field layerName_165:Byte
+	Field layerName_166:Byte
+	Field layerName_167:Byte
+	Field layerName_168:Byte
+	Field layerName_169:Byte
+	Field layerName_170:Byte
+	Field layerName_171:Byte
+	Field layerName_172:Byte
+	Field layerName_173:Byte
+	Field layerName_174:Byte
+	Field layerName_175:Byte
+	Field layerName_176:Byte
+	Field layerName_177:Byte
+	Field layerName_178:Byte
+	Field layerName_179:Byte
+	Field layerName_180:Byte
+	Field layerName_181:Byte
+	Field layerName_182:Byte
+	Field layerName_183:Byte
+	Field layerName_184:Byte
+	Field layerName_185:Byte
+	Field layerName_186:Byte
+	Field layerName_187:Byte
+	Field layerName_188:Byte
+	Field layerName_189:Byte
+	Field layerName_190:Byte
+	Field layerName_191:Byte
+	Field layerName_192:Byte
+	Field layerName_193:Byte
+	Field layerName_194:Byte
+	Field layerName_195:Byte
+	Field layerName_196:Byte
+	Field layerName_197:Byte
+	Field layerName_198:Byte
+	Field layerName_199:Byte
+	Field layerName_200:Byte
+	Field layerName_201:Byte
+	Field layerName_202:Byte
+	Field layerName_203:Byte
+	Field layerName_204:Byte
+	Field layerName_205:Byte
+	Field layerName_206:Byte
+	Field layerName_207:Byte
+	Field layerName_208:Byte
+	Field layerName_209:Byte
+	Field layerName_210:Byte
+	Field layerName_211:Byte
+	Field layerName_212:Byte
+	Field layerName_213:Byte
+	Field layerName_214:Byte
+	Field layerName_215:Byte
+	Field layerName_216:Byte
+	Field layerName_217:Byte
+	Field layerName_218:Byte
+	Field layerName_219:Byte
+	Field layerName_220:Byte
+	Field layerName_221:Byte
+	Field layerName_222:Byte
+	Field layerName_223:Byte
+	Field layerName_224:Byte
+	Field layerName_225:Byte
+	Field layerName_226:Byte
+	Field layerName_227:Byte
+	Field layerName_228:Byte
+	Field layerName_229:Byte
+	Field layerName_230:Byte
+	Field layerName_231:Byte
+	Field layerName_232:Byte
+	Field layerName_233:Byte
+	Field layerName_234:Byte
+	Field layerName_235:Byte
+	Field layerName_236:Byte
+	Field layerName_237:Byte
+	Field layerName_238:Byte
+	Field layerName_239:Byte
+	Field layerName_240:Byte
+	Field layerName_241:Byte
+	Field layerName_242:Byte
+	Field layerName_243:Byte
+	Field layerName_244:Byte
+	Field layerName_245:Byte
+	Field layerName_246:Byte
+	Field layerName_247:Byte
+	Field layerName_248:Byte
+	Field layerName_249:Byte
+	Field layerName_250:Byte
+	Field layerName_251:Byte
+	Field layerName_252:Byte
+	Field layerName_253:Byte
+	Field layerName_254:Byte
+	Field layerName_255:Byte
+	Field specVersion:UInt
+	Field implementationVersion:UInt
+	Field description_0:Byte
+	Field description_1:Byte
+	Field description_2:Byte
+	Field description_3:Byte
+	Field description_4:Byte
+	Field description_5:Byte
+	Field description_6:Byte
+	Field description_7:Byte
+	Field description_8:Byte
+	Field description_9:Byte
+	Field description_10:Byte
+	Field description_11:Byte
+	Field description_12:Byte
+	Field description_13:Byte
+	Field description_14:Byte
+	Field description_15:Byte
+	Field description_16:Byte
+	Field description_17:Byte
+	Field description_18:Byte
+	Field description_19:Byte
+	Field description_20:Byte
+	Field description_21:Byte
+	Field description_22:Byte
+	Field description_23:Byte
+	Field description_24:Byte
+	Field description_25:Byte
+	Field description_26:Byte
+	Field description_27:Byte
+	Field description_28:Byte
+	Field description_29:Byte
+	Field description_30:Byte
+	Field description_31:Byte
+	Field description_32:Byte
+	Field description_33:Byte
+	Field description_34:Byte
+	Field description_35:Byte
+	Field description_36:Byte
+	Field description_37:Byte
+	Field description_38:Byte
+	Field description_39:Byte
+	Field description_40:Byte
+	Field description_41:Byte
+	Field description_42:Byte
+	Field description_43:Byte
+	Field description_44:Byte
+	Field description_45:Byte
+	Field description_46:Byte
+	Field description_47:Byte
+	Field description_48:Byte
+	Field description_49:Byte
+	Field description_50:Byte
+	Field description_51:Byte
+	Field description_52:Byte
+	Field description_53:Byte
+	Field description_54:Byte
+	Field description_55:Byte
+	Field description_56:Byte
+	Field description_57:Byte
+	Field description_58:Byte
+	Field description_59:Byte
+	Field description_60:Byte
+	Field description_61:Byte
+	Field description_62:Byte
+	Field description_63:Byte
+	Field description_64:Byte
+	Field description_65:Byte
+	Field description_66:Byte
+	Field description_67:Byte
+	Field description_68:Byte
+	Field description_69:Byte
+	Field description_70:Byte
+	Field description_71:Byte
+	Field description_72:Byte
+	Field description_73:Byte
+	Field description_74:Byte
+	Field description_75:Byte
+	Field description_76:Byte
+	Field description_77:Byte
+	Field description_78:Byte
+	Field description_79:Byte
+	Field description_80:Byte
+	Field description_81:Byte
+	Field description_82:Byte
+	Field description_83:Byte
+	Field description_84:Byte
+	Field description_85:Byte
+	Field description_86:Byte
+	Field description_87:Byte
+	Field description_88:Byte
+	Field description_89:Byte
+	Field description_90:Byte
+	Field description_91:Byte
+	Field description_92:Byte
+	Field description_93:Byte
+	Field description_94:Byte
+	Field description_95:Byte
+	Field description_96:Byte
+	Field description_97:Byte
+	Field description_98:Byte
+	Field description_99:Byte
+	Field description_100:Byte
+	Field description_101:Byte
+	Field description_102:Byte
+	Field description_103:Byte
+	Field description_104:Byte
+	Field description_105:Byte
+	Field description_106:Byte
+	Field description_107:Byte
+	Field description_108:Byte
+	Field description_109:Byte
+	Field description_110:Byte
+	Field description_111:Byte
+	Field description_112:Byte
+	Field description_113:Byte
+	Field description_114:Byte
+	Field description_115:Byte
+	Field description_116:Byte
+	Field description_117:Byte
+	Field description_118:Byte
+	Field description_119:Byte
+	Field description_120:Byte
+	Field description_121:Byte
+	Field description_122:Byte
+	Field description_123:Byte
+	Field description_124:Byte
+	Field description_125:Byte
+	Field description_126:Byte
+	Field description_127:Byte
+	Field description_128:Byte
+	Field description_129:Byte
+	Field description_130:Byte
+	Field description_131:Byte
+	Field description_132:Byte
+	Field description_133:Byte
+	Field description_134:Byte
+	Field description_135:Byte
+	Field description_136:Byte
+	Field description_137:Byte
+	Field description_138:Byte
+	Field description_139:Byte
+	Field description_140:Byte
+	Field description_141:Byte
+	Field description_142:Byte
+	Field description_143:Byte
+	Field description_144:Byte
+	Field description_145:Byte
+	Field description_146:Byte
+	Field description_147:Byte
+	Field description_148:Byte
+	Field description_149:Byte
+	Field description_150:Byte
+	Field description_151:Byte
+	Field description_152:Byte
+	Field description_153:Byte
+	Field description_154:Byte
+	Field description_155:Byte
+	Field description_156:Byte
+	Field description_157:Byte
+	Field description_158:Byte
+	Field description_159:Byte
+	Field description_160:Byte
+	Field description_161:Byte
+	Field description_162:Byte
+	Field description_163:Byte
+	Field description_164:Byte
+	Field description_165:Byte
+	Field description_166:Byte
+	Field description_167:Byte
+	Field description_168:Byte
+	Field description_169:Byte
+	Field description_170:Byte
+	Field description_171:Byte
+	Field description_172:Byte
+	Field description_173:Byte
+	Field description_174:Byte
+	Field description_175:Byte
+	Field description_176:Byte
+	Field description_177:Byte
+	Field description_178:Byte
+	Field description_179:Byte
+	Field description_180:Byte
+	Field description_181:Byte
+	Field description_182:Byte
+	Field description_183:Byte
+	Field description_184:Byte
+	Field description_185:Byte
+	Field description_186:Byte
+	Field description_187:Byte
+	Field description_188:Byte
+	Field description_189:Byte
+	Field description_190:Byte
+	Field description_191:Byte
+	Field description_192:Byte
+	Field description_193:Byte
+	Field description_194:Byte
+	Field description_195:Byte
+	Field description_196:Byte
+	Field description_197:Byte
+	Field description_198:Byte
+	Field description_199:Byte
+	Field description_200:Byte
+	Field description_201:Byte
+	Field description_202:Byte
+	Field description_203:Byte
+	Field description_204:Byte
+	Field description_205:Byte
+	Field description_206:Byte
+	Field description_207:Byte
+	Field description_208:Byte
+	Field description_209:Byte
+	Field description_210:Byte
+	Field description_211:Byte
+	Field description_212:Byte
+	Field description_213:Byte
+	Field description_214:Byte
+	Field description_215:Byte
+	Field description_216:Byte
+	Field description_217:Byte
+	Field description_218:Byte
+	Field description_219:Byte
+	Field description_220:Byte
+	Field description_221:Byte
+	Field description_222:Byte
+	Field description_223:Byte
+	Field description_224:Byte
+	Field description_225:Byte
+	Field description_226:Byte
+	Field description_227:Byte
+	Field description_228:Byte
+	Field description_229:Byte
+	Field description_230:Byte
+	Field description_231:Byte
+	Field description_232:Byte
+	Field description_233:Byte
+	Field description_234:Byte
+	Field description_235:Byte
+	Field description_236:Byte
+	Field description_237:Byte
+	Field description_238:Byte
+	Field description_239:Byte
+	Field description_240:Byte
+	Field description_241:Byte
+	Field description_242:Byte
+	Field description_243:Byte
+	Field description_244:Byte
+	Field description_245:Byte
+	Field description_246:Byte
+	Field description_247:Byte
+	Field description_248:Byte
+	Field description_249:Byte
+	Field description_250:Byte
+	Field description_251:Byte
+	Field description_252:Byte
+	Field description_253:Byte
+	Field description_254:Byte
+	Field description_255:Byte
+EndType
+Type VkSubmitInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field waitSemaphoreCount:UInt
+	Field pWaitSemaphores:Byte Ptr
+	Field pWaitDstStageMask:UInt Ptr
+	Field commandBufferCount:UInt
+	Field pCommandBuffers:Byte Ptr
+	Field signalSemaphoreCount:UInt
+	Field pSignalSemaphores:Byte Ptr
+EndType
+Type VkMemoryAllocateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field allocationSize:ULong
+	Field memoryTypeIndex:UInt
+EndType
+Type VkMappedMemoryRange
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field memory:Byte Ptr
+	Field offset:ULong
+	Field size:ULong
+EndType
+Type VkMemoryRequirements
+	Field size:ULong
+	Field alignment:ULong
+	Field memoryTypeBits:UInt
+EndType
+Type VkSparseImageFormatProperties
+	Field aspectMask:UInt
+	Field imageGranularity_width:UInt
+	Field imageGranularity_height:UInt
+	Field imageGranularity_depth:UInt
+	Field flags:UInt
+EndType
+Type VkSparseImageMemoryRequirements
+	Field formatProperties_aspectMask:UInt
+	Field formatProperties_imageGranularity_width:UInt
+	Field formatProperties_imageGranularity_height:UInt
+	Field formatProperties_imageGranularity_depth:UInt
+	Field formatProperties_flags:UInt
+	Field imageMipTailFirstLod:UInt
+	Field imageMipTailSize:ULong
+	Field imageMipTailOffset:ULong
+	Field imageMipTailStride:ULong
+EndType
+Type VkSparseMemoryBind
+	Field resourceOffset:ULong
+	Field size:ULong
+	Field memory:Byte Ptr
+	Field memoryOffset:ULong
+	Field flags:UInt
+EndType
+Type VkSparseBufferMemoryBindInfo
+	Field buffer:Byte Ptr
+	Field bindCount:UInt
+	Field pBinds:Byte Ptr
+EndType
+Type VkSparseImageOpaqueMemoryBindInfo
+	Field image:Byte Ptr
+	Field bindCount:UInt
+	Field pBinds:Byte Ptr
+EndType
+Type VkImageSubresource
+	Field aspectMask:UInt
+	Field mipLevel:UInt
+	Field arrayLayer:UInt
+EndType
+Type VkOffset3D
+	Field x:Int
+	Field y:Int
+	Field z:Int
+EndType
+Type VkSparseImageMemoryBind
+	Field subresource_aspectMask:UInt
+	Field subresource_mipLevel:UInt
+	Field subresource_arrayLayer:UInt
+	Field offset_x:Int
+	Field offset_y:Int
+	Field offset_z:Int
+	Field extent_width:UInt
+	Field extent_height:UInt
+	Field extent_depth:UInt
+	Field memory:Byte Ptr
+	Field memoryOffset:ULong
+	Field flags:UInt
+EndType
+Type VkSparseImageMemoryBindInfo
+	Field image:Byte Ptr
+	Field bindCount:UInt
+	Field pBinds:Byte Ptr
+EndType
+Type VkBindSparseInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field waitSemaphoreCount:UInt
+	Field pWaitSemaphores:Byte Ptr
+	Field bufferBindCount:UInt
+	Field pBufferBinds:Byte Ptr
+	Field imageOpaqueBindCount:UInt
+	Field pImageOpaqueBinds:Byte Ptr
+	Field imageBindCount:UInt
+	Field pImageBinds:Byte Ptr
+	Field signalSemaphoreCount:UInt
+	Field pSignalSemaphores:Byte Ptr
+EndType
+Type VkFenceCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+EndType
+Type VkSemaphoreCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+EndType
+Type VkEventCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+EndType
+Type VkQueryPoolCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field queryType:Int
+	Field queryCount:UInt
+	Field pipelineStatistics:UInt
+EndType
+Type VkBufferCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field size:ULong
+	Field usage:UInt
+	Field sharingMode:Int
+	Field queueFamilyIndexCount:UInt
+	Field pQueueFamilyIndices:UInt Ptr
+EndType
+Type VkBufferViewCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field buffer:Byte Ptr
+	Field format:Int
+	Field offset:ULong
+	Field range:ULong
+EndType
+Type VkImageCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field imageType:Int
+	Field format:Int
+	Field extent_width:UInt
+	Field extent_height:UInt
+	Field extent_depth:UInt
+	Field mipLevels:UInt
+	Field arrayLayers:UInt
+	Field samples:Int
+	Field tiling:Int
+	Field usage:UInt
+	Field sharingMode:Int
+	Field queueFamilyIndexCount:UInt
+	Field pQueueFamilyIndices:UInt Ptr
+	Field initialLayout:Int
+EndType
+Type VkSubresourceLayout
+	Field offset:ULong
+	Field size:ULong
+	Field rowPitch:ULong
+	Field arrayPitch:ULong
+	Field depthPitch:ULong
+EndType
+Type VkComponentMapping
+	Field r:Int
+	Field g:Int
+	Field b:Int
+	Field a:Int
+EndType
+Type VkImageSubresourceRange
+	Field aspectMask:UInt
+	Field baseMipLevel:UInt
+	Field levelCount:UInt
+	Field baseArrayLayer:UInt
+	Field layerCount:UInt
+EndType
+Type VkImageViewCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field image:Byte Ptr
+	Field viewType:Int
+	Field format:Int
+	Field components_r:Int
+	Field components_g:Int
+	Field components_b:Int
+	Field components_a:Int
+	Field subresourceRange_aspectMask:UInt
+	Field subresourceRange_baseMipLevel:UInt
+	Field subresourceRange_levelCount:UInt
+	Field subresourceRange_baseArrayLayer:UInt
+	Field subresourceRange_layerCount:UInt
+EndType
+Type VkShaderModuleCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field codeSize:Size_T
+	Field pCode:UInt Ptr
+EndType
+Type VkPipelineCacheCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field initialDataSize:Size_T
+	Field pInitialData:Byte Ptr
+EndType
+Type VkSpecializationMapEntry
+	Field constantID:UInt
+	Field offset:UInt
+	Field size:Size_T
+EndType
+Type VkSpecializationInfo
+	Field mapEntryCount:UInt
+	Field pMapEntries:Byte Ptr
+	Field dataSize:Size_T
+	Field pData:Byte Ptr
+EndType
+Type VkPipelineShaderStageCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field stage:Int
+	Field module_:Byte Ptr
+	Field pName:Byte Ptr
+	Field pSpecializationInfo:Byte Ptr
+EndType
+Type VkVertexInputBindingDescription
+	Field binding:UInt
+	Field stride:UInt
+	Field inputRate:Int
+EndType
+Type VkVertexInputAttributeDescription
+	Field location:UInt
+	Field binding:UInt
+	Field format:Int
+	Field offset:UInt
+EndType
+Type VkPipelineVertexInputStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field vertexBindingDescriptionCount:UInt
+	Field pVertexBindingDescriptions:Byte Ptr
+	Field vertexAttributeDescriptionCount:UInt
+	Field pVertexAttributeDescriptions:Byte Ptr
+EndType
+Type VkPipelineInputAssemblyStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field topology:Int
+	Field primitiveRestartEnable:UInt
+EndType
+Type VkPipelineTessellationStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field patchControlPoints:UInt
+EndType
+Type VkViewport
+	Field x:Float
+	Field y:Float
+	Field width:Float
+	Field height:Float
+	Field minDepth:Float
+	Field maxDepth:Float
+EndType
+Type VkOffset2D
+	Field x:Int
+	Field y:Int
+EndType
+Type VkExtent2D
+	Field width:UInt
+	Field height:UInt
+EndType
+Type VkRect2D
+	Field offset_x:Int
+	Field offset_y:Int
+	Field extent_width:UInt
+	Field extent_height:UInt
+EndType
+Type VkPipelineViewportStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field viewportCount:UInt
+	Field pViewports:Byte Ptr
+	Field scissorCount:UInt
+	Field pScissors:Byte Ptr
+EndType
+Type VkPipelineRasterizationStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field depthClampEnable:UInt
+	Field rasterizerDiscardEnable:UInt
+	Field polygonMode:Int
+	Field cullMode:UInt
+	Field frontFace:Int
+	Field depthBiasEnable:UInt
+	Field depthBiasConstantFactor:Float
+	Field depthBiasClamp:Float
+	Field depthBiasSlopeFactor:Float
+	Field lineWidth:Float
+EndType
+Type VkPipelineMultisampleStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field rasterizationSamples:Int
+	Field sampleShadingEnable:UInt
+	Field minSampleShading:Float
+	Field pSampleMask:UInt Ptr
+	Field alphaToCoverageEnable:UInt
+	Field alphaToOneEnable:UInt
+EndType
+Type VkStencilOpState
+	Field failOp:Int
+	Field passOp:Int
+	Field depthFailOp:Int
+	Field compareOp:Int
+	Field compareMask:UInt
+	Field writeMask:UInt
+	Field reference:UInt
+EndType
+Type VkPipelineDepthStencilStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field depthTestEnable:UInt
+	Field depthWriteEnable:UInt
+	Field depthCompareOp:Int
+	Field depthBoundsTestEnable:UInt
+	Field stencilTestEnable:UInt
+	Field front_failOp:Int
+	Field front_passOp:Int
+	Field front_depthFailOp:Int
+	Field front_compareOp:Int
+	Field front_compareMask:UInt
+	Field front_writeMask:UInt
+	Field front_reference:UInt
+	Field back_failOp:Int
+	Field back_passOp:Int
+	Field back_depthFailOp:Int
+	Field back_compareOp:Int
+	Field back_compareMask:UInt
+	Field back_writeMask:UInt
+	Field back_reference:UInt
+	Field minDepthBounds:Float
+	Field maxDepthBounds:Float
+EndType
+Type VkPipelineColorBlendAttachmentState
+	Field blendEnable:UInt
+	Field srcColorBlendFactor:Int
+	Field dstColorBlendFactor:Int
+	Field colorBlendOp:Int
+	Field srcAlphaBlendFactor:Int
+	Field dstAlphaBlendFactor:Int
+	Field alphaBlendOp:Int
+	Field colorWriteMask:UInt
+EndType
+Type VkPipelineColorBlendStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field logicOpEnable:UInt
+	Field logicOp:Int
+	Field attachmentCount:UInt
+	Field pAttachments:Byte Ptr
+	Field blendConstants_0:Float
+	Field blendConstants_1:Float
+	Field blendConstants_2:Float
+	Field blendConstants_3:Float
+EndType
+Type VkPipelineDynamicStateCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field dynamicStateCount:UInt
+	Field pDynamicStates:Int Ptr
+EndType
+Type VkGraphicsPipelineCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field stageCount:UInt
+	Field pStages:Byte Ptr
+	Field pVertexInputState:Byte Ptr
+	Field pInputAssemblyState:Byte Ptr
+	Field pTessellationState:Byte Ptr
+	Field pViewportState:Byte Ptr
+	Field pRasterizationState:Byte Ptr
+	Field pMultisampleState:Byte Ptr
+	Field pDepthStencilState:Byte Ptr
+	Field pColorBlendState:Byte Ptr
+	Field pDynamicState:Byte Ptr
+	Field layout:Byte Ptr
+	Field renderPass:Byte Ptr
+	Field subpass:UInt
+	Field basePipelineHandle:Byte Ptr
+	Field basePipelineIndex:Int
+EndType
+Type VkComputePipelineCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field stage_sType:Int
+	Field stage_pNext:Byte Ptr
+	Field stage_flags:UInt
+	Field stage_stage:Int
+	Field stage_module_:Byte Ptr
+	Field stage_pName:Byte Ptr
+	Field stage_pSpecializationInfo:Byte Ptr
+	Field layout:Byte Ptr
+	Field basePipelineHandle:Byte Ptr
+	Field basePipelineIndex:Int
+EndType
+Type VkPushConstantRange
+	Field stageFlags:UInt
+	Field offset:UInt
+	Field size:UInt
+EndType
+Type VkPipelineLayoutCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field setLayoutCount:UInt
+	Field pSetLayouts:Byte Ptr
+	Field pushConstantRangeCount:UInt
+	Field pPushConstantRanges:Byte Ptr
+EndType
+Type VkSamplerCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field magFilter:Int
+	Field minFilter:Int
+	Field mipmapMode:Int
+	Field addressModeU:Int
+	Field addressModeV:Int
+	Field addressModeW:Int
+	Field mipLodBias:Float
+	Field anisotropyEnable:UInt
+	Field maxAnisotropy:Float
+	Field compareEnable:UInt
+	Field compareOp:Int
+	Field minLod:Float
+	Field maxLod:Float
+	Field borderColor:Int
+	Field unnormalizedCoordinates:UInt
+EndType
+Type VkDescriptorSetLayoutBinding
+	Field binding:UInt
+	Field descriptorType:Int
+	Field descriptorCount:UInt
+	Field stageFlags:UInt
+	Field pImmutableSamplers:Byte Ptr
+EndType
+Type VkDescriptorSetLayoutCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field bindingCount:UInt
+	Field pBindings:Byte Ptr
+EndType
+Type VkDescriptorPoolSize
+	Field type_:Int
+	Field descriptorCount:UInt
+EndType
+Type VkDescriptorPoolCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field maxSets:UInt
+	Field poolSizeCount:UInt
+	Field pPoolSizes:Byte Ptr
+EndType
+Type VkDescriptorSetAllocateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field descriptorPool:Byte Ptr
+	Field descriptorSetCount:UInt
+	Field pSetLayouts:Byte Ptr
+EndType
+Type VkDescriptorImageInfo
+	Field sampler:Byte Ptr
+	Field imageView:Byte Ptr
+	Field imageLayout:Int
+EndType
+Type VkDescriptorBufferInfo
+	Field buffer:Byte Ptr
+	Field offset:ULong
+	Field range:ULong
+EndType
+Type VkWriteDescriptorSet
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field dstSet:Byte Ptr
+	Field dstBinding:UInt
+	Field dstArrayElement:UInt
+	Field descriptorCount:UInt
+	Field descriptorType:Int
+	Field pImageInfo:Byte Ptr
+	Field pBufferInfo:Byte Ptr
+	Field pTexelBufferView:Byte Ptr
+EndType
+Type VkCopyDescriptorSet
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field srcSet:Byte Ptr
+	Field srcBinding:UInt
+	Field srcArrayElement:UInt
+	Field dstSet:Byte Ptr
+	Field dstBinding:UInt
+	Field dstArrayElement:UInt
+	Field descriptorCount:UInt
+EndType
+Type VkFramebufferCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field renderPass:Byte Ptr
+	Field attachmentCount:UInt
+	Field pAttachments:Byte Ptr
+	Field width:UInt
+	Field height:UInt
+	Field layers:UInt
+EndType
+Type VkAttachmentDescription
+	Field flags:UInt
+	Field format:Int
+	Field samples:Int
+	Field loadOp:Int
+	Field storeOp:Int
+	Field stencilLoadOp:Int
+	Field stencilStoreOp:Int
+	Field initialLayout:Int
+	Field finalLayout:Int
+EndType
+Type VkAttachmentReference
+	Field attachment:UInt
+	Field layout:Int
+EndType
+Type VkSubpassDescription
+	Field flags:UInt
+	Field pipelineBindPoint:Int
+	Field inputAttachmentCount:UInt
+	Field pInputAttachments:Byte Ptr
+	Field colorAttachmentCount:UInt
+	Field pColorAttachments:Byte Ptr
+	Field pResolveAttachments:Byte Ptr
+	Field pDepthStencilAttachment:Byte Ptr
+	Field preserveAttachmentCount:UInt
+	Field pPreserveAttachments:UInt Ptr
+EndType
+Type VkSubpassDependency
+	Field srcSubpass:UInt
+	Field dstSubpass:UInt
+	Field srcStageMask:UInt
+	Field dstStageMask:UInt
+	Field srcAccessMask:UInt
+	Field dstAccessMask:UInt
+	Field dependencyFlags:UInt
+EndType
+Type VkRenderPassCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field attachmentCount:UInt
+	Field pAttachments:Byte Ptr
+	Field subpassCount:UInt
+	Field pSubpasses:Byte Ptr
+	Field dependencyCount:UInt
+	Field pDependencies:Byte Ptr
+EndType
+Type VkCommandPoolCreateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field queueFamilyIndex:UInt
+EndType
+Type VkCommandBufferAllocateInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field commandPool:Byte Ptr
+	Field level:Int
+	Field commandBufferCount:UInt
+EndType
+Type VkCommandBufferInheritanceInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field renderPass:Byte Ptr
+	Field subpass:UInt
+	Field framebuffer:Byte Ptr
+	Field occlusionQueryEnable:UInt
+	Field queryFlags:UInt
+	Field pipelineStatistics:UInt
+EndType
+Type VkCommandBufferBeginInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field pInheritanceInfo:Byte Ptr
+EndType
+Type VkBufferCopy
+	Field srcOffset:ULong
+	Field dstOffset:ULong
+	Field size:ULong
+EndType
+Type VkImageSubresourceLayers
+	Field aspectMask:UInt
+	Field mipLevel:UInt
+	Field baseArrayLayer:UInt
+	Field layerCount:UInt
+EndType
+Type VkImageCopy
+	Field srcSubresource_aspectMask:UInt
+	Field srcSubresource_mipLevel:UInt
+	Field srcSubresource_baseArrayLayer:UInt
+	Field srcSubresource_layerCount:UInt
+	Field srcOffset_x:Int
+	Field srcOffset_y:Int
+	Field srcOffset_z:Int
+	Field dstSubresource_aspectMask:UInt
+	Field dstSubresource_mipLevel:UInt
+	Field dstSubresource_baseArrayLayer:UInt
+	Field dstSubresource_layerCount:UInt
+	Field dstOffset_x:Int
+	Field dstOffset_y:Int
+	Field dstOffset_z:Int
+	Field extent_width:UInt
+	Field extent_height:UInt
+	Field extent_depth:UInt
+EndType
+Type VkImageBlit
+	Field srcSubresource_aspectMask:UInt
+	Field srcSubresource_mipLevel:UInt
+	Field srcSubresource_baseArrayLayer:UInt
+	Field srcSubresource_layerCount:UInt
+	Field srcOffsets_x_0:Int
+	Field srcOffsets_y_0:Int
+	Field srcOffsets_z_0:Int
+	Field srcOffsets_x_1:Int
+	Field srcOffsets_y_1:Int
+	Field srcOffsets_z_1:Int
+	Field dstSubresource_aspectMask:UInt
+	Field dstSubresource_mipLevel:UInt
+	Field dstSubresource_baseArrayLayer:UInt
+	Field dstSubresource_layerCount:UInt
+	Field dstOffsets_x_0:Int
+	Field dstOffsets_y_0:Int
+	Field dstOffsets_z_0:Int
+	Field dstOffsets_x_1:Int
+	Field dstOffsets_y_1:Int
+	Field dstOffsets_z_1:Int
+EndType
+Type VkBufferImageCopy
+	Field bufferOffset:ULong
+	Field bufferRowLength:UInt
+	Field bufferImageHeight:UInt
+	Field imageSubresource_aspectMask:UInt
+	Field imageSubresource_mipLevel:UInt
+	Field imageSubresource_baseArrayLayer:UInt
+	Field imageSubresource_layerCount:UInt
+	Field imageOffset_x:Int
+	Field imageOffset_y:Int
+	Field imageOffset_z:Int
+	Field imageExtent_width:UInt
+	Field imageExtent_height:UInt
+	Field imageExtent_depth:UInt
+EndType
+Type VkClearDepthStencilValue
+	Field depth:Float
+	Field stencil:UInt
+EndType
+Type VkClearAttachment
+	Field aspectMask:UInt
+	Field colorAttachment:UInt
+	Field clearValue:Byte Ptr
+EndType
+Type VkClearRect
+	Field rect_offset_x:Int
+	Field rect_offset_y:Int
+	Field rect_extent_width:UInt
+	Field rect_extent_height:UInt
+	Field baseArrayLayer:UInt
+	Field layerCount:UInt
+EndType
+Type VkImageResolve
+	Field srcSubresource_aspectMask:UInt
+	Field srcSubresource_mipLevel:UInt
+	Field srcSubresource_baseArrayLayer:UInt
+	Field srcSubresource_layerCount:UInt
+	Field srcOffset_x:Int
+	Field srcOffset_y:Int
+	Field srcOffset_z:Int
+	Field dstSubresource_aspectMask:UInt
+	Field dstSubresource_mipLevel:UInt
+	Field dstSubresource_baseArrayLayer:UInt
+	Field dstSubresource_layerCount:UInt
+	Field dstOffset_x:Int
+	Field dstOffset_y:Int
+	Field dstOffset_z:Int
+	Field extent_width:UInt
+	Field extent_height:UInt
+	Field extent_depth:UInt
+EndType
+Type VkMemoryBarrier
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field srcAccessMask:UInt
+	Field dstAccessMask:UInt
+EndType
+Type VkBufferMemoryBarrier
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field srcAccessMask:UInt
+	Field dstAccessMask:UInt
+	Field srcQueueFamilyIndex:UInt
+	Field dstQueueFamilyIndex:UInt
+	Field buffer:Byte Ptr
+	Field offset:ULong
+	Field size:ULong
+EndType
+Type VkImageMemoryBarrier
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field srcAccessMask:UInt
+	Field dstAccessMask:UInt
+	Field oldLayout:Int
+	Field newLayout:Int
+	Field srcQueueFamilyIndex:UInt
+	Field dstQueueFamilyIndex:UInt
+	Field image:Byte Ptr
+	Field subresourceRange_aspectMask:UInt
+	Field subresourceRange_baseMipLevel:UInt
+	Field subresourceRange_levelCount:UInt
+	Field subresourceRange_baseArrayLayer:UInt
+	Field subresourceRange_layerCount:UInt
+EndType
+Type VkRenderPassBeginInfo
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field renderPass:Byte Ptr
+	Field framebuffer:Byte Ptr
+	Field renderArea_offset_x:Int
+	Field renderArea_offset_y:Int
+	Field renderArea_extent_width:UInt
+	Field renderArea_extent_height:UInt
+	Field clearValueCount:UInt
+	Field pClearValues:Byte Ptr
+EndType
+Type VkDispatchIndirectCommand
+	Field x:UInt
+	Field y:UInt
+	Field z:UInt
+EndType
+Type VkDrawIndexedIndirectCommand
+	Field indexCount:UInt
+	Field instanceCount:UInt
+	Field firstIndex:UInt
+	Field vertexOffset:Int
+	Field firstInstance:UInt
+EndType
+Type VkDrawIndirectCommand
+	Field vertexCount:UInt
+	Field instanceCount:UInt
+	Field firstVertex:UInt
+	Field firstInstance:UInt
+EndType
+' VkColorSpaceKHR
+Const VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:Int = 0
+Const VK_COLOR_SPACE_BEGIN_RANGE_KHR:Int = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
+Const VK_COLOR_SPACE_END_RANGE_KHR:Int = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
+Const VK_COLOR_SPACE_RANGE_SIZE_KHR:Int = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR-VK_COLOR_SPACE_SRGB_NONLINEAR_KHR+1)
+Const VK_COLOR_SPACE_MAX_ENUM_KHR:Int = $7FFFFFFF
+
+' VkPresentModeKHR
+Const VK_PRESENT_MODE_IMMEDIATE_KHR:Int = 0
+Const VK_PRESENT_MODE_MAILBOX_KHR:Int = 1
+Const VK_PRESENT_MODE_FIFO_KHR:Int = 2
+Const VK_PRESENT_MODE_FIFO_RELAXED_KHR:Int = 3
+Const VK_PRESENT_MODE_BEGIN_RANGE_KHR:Int = VK_PRESENT_MODE_IMMEDIATE_KHR
+Const VK_PRESENT_MODE_END_RANGE_KHR:Int = VK_PRESENT_MODE_FIFO_RELAXED_KHR
+Const VK_PRESENT_MODE_RANGE_SIZE_KHR:Int = (VK_PRESENT_MODE_FIFO_RELAXED_KHR-VK_PRESENT_MODE_IMMEDIATE_KHR+1)
+Const VK_PRESENT_MODE_MAX_ENUM_KHR:Int = $7FFFFFFF
+
+' VkSurfaceTransformFlagBitsKHR
+Const VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR:Int = $00000001
+Const VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR:Int = $00000002
+Const VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR:Int = $00000004
+Const VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR:Int = $00000008
+Const VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR:Int = $00000010
+Const VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR:Int = $00000020
+Const VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR:Int = $00000040
+Const VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR:Int = $00000080
+Const VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR:Int = $00000100
+Const VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR:Int = $7FFFFFFF
+
+' VkCompositeAlphaFlagBitsKHR
+Const VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR:Int = $00000001
+Const VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR:Int = $00000002
+Const VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR:Int = $00000004
+Const VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR:Int = $00000008
+Const VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR:Int = $7FFFFFFF
+
+Type VkSurfaceCapabilitiesKHR
+	Field minImageCount:UInt
+	Field maxImageCount:UInt
+	Field currentExtent_width:UInt
+	Field currentExtent_height:UInt
+	Field minImageExtent_width:UInt
+	Field minImageExtent_height:UInt
+	Field maxImageExtent_width:UInt
+	Field maxImageExtent_height:UInt
+	Field maxImageArrayLayers:UInt
+	Field supportedTransforms:UInt
+	Field currentTransform:Int
+	Field supportedCompositeAlpha:UInt
+	Field supportedUsageFlags:UInt
+EndType
+Type VkSurfaceFormatKHR
+	Field format:Int
+	Field colorSpace:Int
+EndType
+Type VkSwapchainCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field surface:Byte Ptr
+	Field minImageCount:UInt
+	Field imageFormat:Int
+	Field imageColorSpace:Int
+	Field imageExtent_width:UInt
+	Field imageExtent_height:UInt
+	Field imageArrayLayers:UInt
+	Field imageUsage:UInt
+	Field imageSharingMode:Int
+	Field queueFamilyIndexCount:UInt
+	Field pQueueFamilyIndices:UInt Ptr
+	Field preTransform:Int
+	Field compositeAlpha:Int
+	Field presentMode:Int
+	Field clipped:UInt
+	Field oldSwapchain:Byte Ptr
+EndType
+Type VkPresentInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field waitSemaphoreCount:UInt
+	Field pWaitSemaphores:Byte Ptr
+	Field swapchainCount:UInt
+	Field pSwapchains:Byte Ptr
+	Field pImageIndices:UInt Ptr
+	Field pResults:Int Ptr
+EndType
+' VkDisplayPlaneAlphaFlagBitsKHR
+Const VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR:Int = $00000001
+Const VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR:Int = $00000002
+Const VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR:Int = $00000004
+Const VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR:Int = $00000008
+Const VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR:Int = $7FFFFFFF
+
+Type VkDisplayPropertiesKHR
+	Field display:Byte Ptr
+	Field displayName:Byte Ptr
+	Field physicalDimensions_width:UInt
+	Field physicalDimensions_height:UInt
+	Field physicalResolution_width:UInt
+	Field physicalResolution_height:UInt
+	Field supportedTransforms:UInt
+	Field planeReorderPossible:UInt
+	Field persistentContent:UInt
+EndType
+Type VkDisplayModeParametersKHR
+	Field visibleRegion_width:UInt
+	Field visibleRegion_height:UInt
+	Field refreshRate:UInt
+EndType
+Type VkDisplayModePropertiesKHR
+	Field displayMode:Byte Ptr
+	Field parameters_visibleRegion_width:UInt
+	Field parameters_visibleRegion_height:UInt
+	Field parameters_refreshRate:UInt
+EndType
+Type VkDisplayModeCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field parameters_visibleRegion_width:UInt
+	Field parameters_visibleRegion_height:UInt
+	Field parameters_refreshRate:UInt
+EndType
+Type VkDisplayPlaneCapabilitiesKHR
+	Field supportedAlpha:UInt
+	Field minSrcPosition_x:Int
+	Field minSrcPosition_y:Int
+	Field maxSrcPosition_x:Int
+	Field maxSrcPosition_y:Int
+	Field minSrcExtent_width:UInt
+	Field minSrcExtent_height:UInt
+	Field maxSrcExtent_width:UInt
+	Field maxSrcExtent_height:UInt
+	Field minDstPosition_x:Int
+	Field minDstPosition_y:Int
+	Field maxDstPosition_x:Int
+	Field maxDstPosition_y:Int
+	Field minDstExtent_width:UInt
+	Field minDstExtent_height:UInt
+	Field maxDstExtent_width:UInt
+	Field maxDstExtent_height:UInt
+EndType
+Type VkDisplayPlanePropertiesKHR
+	Field currentDisplay:Byte Ptr
+	Field currentStackIndex:UInt
+EndType
+Type VkDisplaySurfaceCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field displayMode:Byte Ptr
+	Field planeIndex:UInt
+	Field planeStackIndex:UInt
+	Field transform:Int
+	Field globalAlpha:Float
+	Field alphaMode:Int
+	Field imageExtent_width:UInt
+	Field imageExtent_height:UInt
+EndType
+Type VkDisplayPresentInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field srcRect_offset_x:Int
+	Field srcRect_offset_y:Int
+	Field srcRect_extent_width:UInt
+	Field srcRect_extent_height:UInt
+	Field dstRect_offset_x:Int
+	Field dstRect_offset_y:Int
+	Field dstRect_extent_width:UInt
+	Field dstRect_extent_height:UInt
+	Field persistent:UInt
+EndType
+Type VkXlibSurfaceCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field dpy:Byte Ptr
+	Field window:Size_T
+EndType
+Type VkXcbSurfaceCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field connection:Byte Ptr
+	Field window:UInt
+EndType
+Type VkWaylandSurfaceCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field display:Byte Ptr
+	Field surface:Byte Ptr
+EndType
+Type VkMirSurfaceCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field connection:Byte Ptr
+	Field mirSurface:Byte Ptr
+EndType
+Type VkAndroidSurfaceCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field window:Byte Ptr
+EndType
+Type VkWin32SurfaceCreateInfoKHR
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field hinstance:Byte Ptr
+	Field hwnd:Byte Ptr
+EndType
+' VkDebugReportObjectTypeEXT
+Const VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:Int = 0
+Const VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:Int = 1
+Const VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:Int = 2
+Const VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:Int = 3
+Const VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:Int = 4
+Const VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:Int = 5
+Const VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:Int = 6
+Const VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:Int = 7
+Const VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:Int = 8
+Const VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:Int = 9
+Const VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:Int = 10
+Const VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:Int = 11
+Const VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:Int = 12
+Const VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:Int = 13
+Const VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:Int = 14
+Const VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:Int = 15
+Const VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:Int = 16
+Const VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:Int = 17
+Const VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:Int = 18
+Const VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:Int = 19
+Const VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:Int = 20
+Const VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:Int = 21
+Const VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:Int = 22
+Const VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:Int = 23
+Const VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:Int = 24
+Const VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:Int = 25
+Const VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:Int = 26
+Const VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:Int = 27
+Const VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT:Int = 28
+Const VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT:Int = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
+Const VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT:Int = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT
+Const VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT:Int = (VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT-VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT+1)
+Const VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT:Int = $7FFFFFFF
+
+' VkDebugReportErrorEXT
+Const VK_DEBUG_REPORT_ERROR_NONE_EXT:Int = 0
+Const VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT:Int = 1
+Const VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT:Int = VK_DEBUG_REPORT_ERROR_NONE_EXT
+Const VK_DEBUG_REPORT_ERROR_END_RANGE_EXT:Int = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT
+Const VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT:Int = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT-VK_DEBUG_REPORT_ERROR_NONE_EXT+1)
+Const VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT:Int = $7FFFFFFF
+
+' VkDebugReportFlagBitsEXT
+Const VK_DEBUG_REPORT_INFORMATION_BIT_EXT:Int = $00000001
+Const VK_DEBUG_REPORT_WARNING_BIT_EXT:Int = $00000002
+Const VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT:Int = $00000004
+Const VK_DEBUG_REPORT_ERROR_BIT_EXT:Int = $00000008
+Const VK_DEBUG_REPORT_DEBUG_BIT_EXT:Int = $00000010
+Const VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT:Int = $7FFFFFFF
+
+Type VkDebugReportCallbackCreateInfoEXT
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field flags:UInt
+	Field pfnCallback:Byte Ptr
+	Field pUserData:Byte Ptr
+EndType
+' VkRasterizationOrderAMD
+Const VK_RASTERIZATION_ORDER_STRICT_AMD:Int = 0
+Const VK_RASTERIZATION_ORDER_RELAXED_AMD:Int = 1
+Const VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD:Int = VK_RASTERIZATION_ORDER_STRICT_AMD
+Const VK_RASTERIZATION_ORDER_END_RANGE_AMD:Int = VK_RASTERIZATION_ORDER_RELAXED_AMD
+Const VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD:Int = (VK_RASTERIZATION_ORDER_RELAXED_AMD-VK_RASTERIZATION_ORDER_STRICT_AMD+1)
+Const VK_RASTERIZATION_ORDER_MAX_ENUM_AMD:Int = $7FFFFFFF
+
+Type VkPipelineRasterizationStateRasterizationOrderAMD
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field rasterizationOrder:Int
+EndType
+Type VkDebugMarkerObjectNameInfoEXT
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field objectType:Int
+	Field Object:ULong
+	Field pObjectName:Byte Ptr
+EndType
+Type VkDebugMarkerObjectTagInfoEXT
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field objectType:Int
+	Field Object:ULong
+	Field tagName:ULong
+	Field tagSize:Size_T
+	Field pTag:Byte Ptr
+EndType
+Type VkDebugMarkerMarkerInfoEXT
+	Field sType:Int
+	Field pNext:Byte Ptr
+	Field pMarkerName:Byte Ptr
+	Field color_0:Float
+	Field color_1:Float
+	Field color_2:Float
+	Field color_3:Float
+EndType
+' Global functions
+Global vkCreateInstance:Int(pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pInstance:Byte Ptr)"Os"
+Global vkEnumerateInstanceExtensionProperties:Int(pLayerName:Byte Ptr,pPropertyCount:UInt Ptr,pProperties:Byte Ptr)"Os"
+Global vkEnumerateInstanceLayerProperties:Int(pPropertyCount:UInt Ptr,pProperties:Byte Ptr)"Os"
+' Instance functions
+Global vkDestroyInstance(instance:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkEnumeratePhysicalDevices:Int(instance:Byte Ptr,pPhysicalDeviceCount:UInt Ptr,pPhysicalDevices:Byte Ptr)"Os"
+Global vkGetInstanceProcAddr:Byte Ptr(instance:Byte Ptr,pName:Byte Ptr)"Os"
+Global vkDestroySurfaceKHR(instance:Byte Ptr,surface:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateDisplayPlaneSurfaceKHR:Int(instance:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSurface:Byte Ptr)"Os"
+Global vkCreateXlibSurfaceKHR:Int(instance:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSurface:Byte Ptr)"Os"
+Global vkCreateXcbSurfaceKHR:Int(instance:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSurface:Byte Ptr)"Os"
+Global vkCreateWaylandSurfaceKHR:Int(instance:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSurface:Byte Ptr)"Os"
+Global vkCreateMirSurfaceKHR:Int(instance:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSurface:Byte Ptr)"Os"
+Global vkCreateAndroidSurfaceKHR:Int(instance:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSurface:Byte Ptr)"Os"
+Global vkCreateWin32SurfaceKHR:Int(instance:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSurface:Byte Ptr)"Os"
+Global vkCreateDebugReportCallbackEXT:Int(instance:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pCallback:Byte Ptr)"Os"
+Global vkDestroyDebugReportCallbackEXT(instance:Byte Ptr,callback:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkDebugReportMessageEXT(instance:Byte Ptr,flags:UInt,objectType:Int,Object:ULong,location:Size_T,messageCode:Int,pLayerPrefix:Byte Ptr,pMessage:Byte Ptr)"Os"
+' PhysicalDevice functions
+Global vkGetPhysicalDeviceFeatures(physicalDevice:Byte Ptr,pFeatures:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceFormatProperties(physicalDevice:Byte Ptr,format:Int,pFormatProperties:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceImageFormatProperties:Int(physicalDevice:Byte Ptr,format:Int,type_:Int,tiling:Int,usage:UInt,flags:UInt,pImageFormatProperties:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceProperties(physicalDevice:Byte Ptr,pProperties:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice:Byte Ptr,pQueueFamilyPropertyCount:UInt Ptr,pQueueFamilyProperties:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceMemoryProperties(physicalDevice:Byte Ptr,pMemoryProperties:Byte Ptr)"Os"
+Global vkCreateDevice:Int(physicalDevice:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pDevice:Byte Ptr)"Os"
+Global vkEnumerateDeviceExtensionProperties:Int(physicalDevice:Byte Ptr,pLayerName:Byte Ptr,pPropertyCount:UInt Ptr,pProperties:Byte Ptr)"Os"
+Global vkEnumerateDeviceLayerProperties:Int(physicalDevice:Byte Ptr,pPropertyCount:UInt Ptr,pProperties:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice:Byte Ptr,format:Int,type_:Int,samples:Int,usage:UInt,tiling:Int,pPropertyCount:UInt Ptr,pProperties:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceSurfaceSupportKHR:Int(physicalDevice:Byte Ptr,queueFamilyIndex:UInt,surface:Byte Ptr,pSupported:UInt Ptr)"Os"
+Global vkGetPhysicalDeviceSurfaceCapabilitiesKHR:Int(physicalDevice:Byte Ptr,surface:Byte Ptr,pSurfaceCapabilities:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceSurfaceFormatsKHR:Int(physicalDevice:Byte Ptr,surface:Byte Ptr,pSurfaceFormatCount:UInt Ptr,pSurfaceFormats:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceSurfacePresentModesKHR:Int(physicalDevice:Byte Ptr,surface:Byte Ptr,pPresentModeCount:UInt Ptr,pPresentModes:Int Ptr)"Os"
+Global vkGetPhysicalDeviceDisplayPropertiesKHR:Int(physicalDevice:Byte Ptr,pPropertyCount:UInt Ptr,pProperties:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceDisplayPlanePropertiesKHR:Int(physicalDevice:Byte Ptr,pPropertyCount:UInt Ptr,pProperties:Byte Ptr)"Os"
+Global vkGetDisplayPlaneSupportedDisplaysKHR:Int(physicalDevice:Byte Ptr,planeIndex:UInt,pDisplayCount:UInt Ptr,pDisplays:Byte Ptr)"Os"
+Global vkGetDisplayModePropertiesKHR:Int(physicalDevice:Byte Ptr,display:Byte Ptr,pPropertyCount:UInt Ptr,pProperties:Byte Ptr)"Os"
+Global vkCreateDisplayModeKHR:Int(physicalDevice:Byte Ptr,display:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pMode:Byte Ptr)"Os"
+Global vkGetDisplayPlaneCapabilitiesKHR:Int(physicalDevice:Byte Ptr,mode:Byte Ptr,planeIndex:UInt,pCapabilities:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceXlibPresentationSupportKHR:UInt(physicalDevice:Byte Ptr,queueFamilyIndex:UInt,dpy:Byte Ptr,visualID:ULong)"Os"
+Global vkGetPhysicalDeviceXcbPresentationSupportKHR:UInt(physicalDevice:Byte Ptr,queueFamilyIndex:UInt,connection:Byte Ptr,visual_id:ULong)"Os"
+Global vkGetPhysicalDeviceWaylandPresentationSupportKHR:UInt(physicalDevice:Byte Ptr,queueFamilyIndex:UInt,display:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceMirPresentationSupportKHR:UInt(physicalDevice:Byte Ptr,queueFamilyIndex:UInt,connection:Byte Ptr)"Os"
+Global vkGetPhysicalDeviceWin32PresentationSupportKHR:UInt(physicalDevice:Byte Ptr,queueFamilyIndex:UInt)"Os"
+' Device functions
+Global vkGetDeviceProcAddr:Byte Ptr(device:Byte Ptr,pName:Byte Ptr)"Os"
+Global vkDestroyDevice(device:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkGetDeviceQueue(device:Byte Ptr,queueFamilyIndex:UInt,queueIndex:UInt,pQueue:Byte Ptr)"Os"
+Global vkDeviceWaitIdle:Int(device:Byte Ptr)"Os"
+Global vkAllocateMemory:Int(device:Byte Ptr,pAllocateInfo:Byte Ptr,pAllocator:Byte Ptr,pMemory:Byte Ptr)"Os"
+Global vkFreeMemory(device:Byte Ptr,memory:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkMapMemory:Int(device:Byte Ptr,memory:Byte Ptr,offset:ULong,size:ULong,flags:UInt,ppData:Byte Ptr)"Os"
+Global vkUnmapMemory(device:Byte Ptr,memory:Byte Ptr)"Os"
+Global vkFlushMappedMemoryRanges:Int(device:Byte Ptr,memoryRangeCount:UInt,pMemoryRanges:Byte Ptr)"Os"
+Global vkInvalidateMappedMemoryRanges:Int(device:Byte Ptr,memoryRangeCount:UInt,pMemoryRanges:Byte Ptr)"Os"
+Global vkGetDeviceMemoryCommitment(device:Byte Ptr,memory:Byte Ptr,pCommittedMemoryInBytes:ULong Ptr)"Os"
+Global vkBindBufferMemory:Int(device:Byte Ptr,buffer:Byte Ptr,memory:Byte Ptr,memoryOffset:ULong)"Os"
+Global vkBindImageMemory:Int(device:Byte Ptr,image:Byte Ptr,memory:Byte Ptr,memoryOffset:ULong)"Os"
+Global vkGetBufferMemoryRequirements(device:Byte Ptr,buffer:Byte Ptr,pMemoryRequirements:Byte Ptr)"Os"
+Global vkGetImageMemoryRequirements(device:Byte Ptr,image:Byte Ptr,pMemoryRequirements:Byte Ptr)"Os"
+Global vkGetImageSparseMemoryRequirements(device:Byte Ptr,image:Byte Ptr,pSparseMemoryRequirementCount:UInt Ptr,pSparseMemoryRequirements:Byte Ptr)"Os"
+Global vkCreateFence:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pFence:Byte Ptr)"Os"
+Global vkDestroyFence(device:Byte Ptr,fence:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkResetFences:Int(device:Byte Ptr,fenceCount:UInt,pFences:Byte Ptr)"Os"
+Global vkGetFenceStatus:Int(device:Byte Ptr,fence:Byte Ptr)"Os"
+Global vkWaitForFences:Int(device:Byte Ptr,fenceCount:UInt,pFences:Byte Ptr,waitAll:UInt,timeout:ULong)"Os"
+Global vkCreateSemaphore:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSemaphore:Byte Ptr)"Os"
+Global vkDestroySemaphore(device:Byte Ptr,semaphore:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateEvent:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pEvent:Byte Ptr)"Os"
+Global vkDestroyEvent(device:Byte Ptr,event:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkGetEventStatus:Int(device:Byte Ptr,event:Byte Ptr)"Os"
+Global vkSetEvent:Int(device:Byte Ptr,event:Byte Ptr)"Os"
+Global vkResetEvent:Int(device:Byte Ptr,event:Byte Ptr)"Os"
+Global vkCreateQueryPool:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pQueryPool:Byte Ptr)"Os"
+Global vkDestroyQueryPool(device:Byte Ptr,queryPool:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkGetQueryPoolResults:Int(device:Byte Ptr,queryPool:Byte Ptr,firstQuery:UInt,queryCount:UInt,dataSize:Size_T,pData:Byte Ptr,stride:ULong,flags:UInt)"Os"
+Global vkCreateBuffer:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pBuffer:Byte Ptr)"Os"
+Global vkDestroyBuffer(device:Byte Ptr,buffer:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateBufferView:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pView:Byte Ptr)"Os"
+Global vkDestroyBufferView(device:Byte Ptr,bufferView:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateImage:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pImage:Byte Ptr)"Os"
+Global vkDestroyImage(device:Byte Ptr,image:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkGetImageSubresourceLayout(device:Byte Ptr,image:Byte Ptr,pSubresource:Byte Ptr,pLayout:Byte Ptr)"Os"
+Global vkCreateImageView:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pView:Byte Ptr)"Os"
+Global vkDestroyImageView(device:Byte Ptr,imageView:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateShaderModule:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pShaderModule:Byte Ptr)"Os"
+Global vkDestroyShaderModule(device:Byte Ptr,shaderModule:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreatePipelineCache:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pPipelineCache:Byte Ptr)"Os"
+Global vkDestroyPipelineCache(device:Byte Ptr,pipelineCache:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkGetPipelineCacheData:Int(device:Byte Ptr,pipelineCache:Byte Ptr,pDataSize:Size_T Ptr,pData:Byte Ptr)"Os"
+Global vkMergePipelineCaches:Int(device:Byte Ptr,dstCache:Byte Ptr,srcCacheCount:UInt,pSrcCaches:Byte Ptr)"Os"
+Global vkCreateGraphicsPipelines:Int(device:Byte Ptr,pipelineCache:Byte Ptr,createInfoCount:UInt,pCreateInfos:Byte Ptr,pAllocator:Byte Ptr,pPipelines:Byte Ptr)"Os"
+Global vkCreateComputePipelines:Int(device:Byte Ptr,pipelineCache:Byte Ptr,createInfoCount:UInt,pCreateInfos:Byte Ptr,pAllocator:Byte Ptr,pPipelines:Byte Ptr)"Os"
+Global vkDestroyPipeline(device:Byte Ptr,pipeline:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreatePipelineLayout:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pPipelineLayout:Byte Ptr)"Os"
+Global vkDestroyPipelineLayout(device:Byte Ptr,pipelineLayout:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateSampler:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSampler:Byte Ptr)"Os"
+Global vkDestroySampler(device:Byte Ptr,sampler:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateDescriptorSetLayout:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSetLayout:Byte Ptr)"Os"
+Global vkDestroyDescriptorSetLayout(device:Byte Ptr,descriptorSetLayout:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateDescriptorPool:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pDescriptorPool:Byte Ptr)"Os"
+Global vkDestroyDescriptorPool(device:Byte Ptr,descriptorPool:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkResetDescriptorPool:Int(device:Byte Ptr,descriptorPool:Byte Ptr,flags:UInt)"Os"
+Global vkAllocateDescriptorSets:Int(device:Byte Ptr,pAllocateInfo:Byte Ptr,pDescriptorSets:Byte Ptr)"Os"
+Global vkFreeDescriptorSets:Int(device:Byte Ptr,descriptorPool:Byte Ptr,descriptorSetCount:UInt,pDescriptorSets:Byte Ptr)"Os"
+Global vkUpdateDescriptorSets(device:Byte Ptr,descriptorWriteCount:UInt,pDescriptorWrites:Byte Ptr,descriptorCopyCount:UInt,pDescriptorCopies:Byte Ptr)"Os"
+Global vkCreateFramebuffer:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pFramebuffer:Byte Ptr)"Os"
+Global vkDestroyFramebuffer(device:Byte Ptr,framebuffer:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkCreateRenderPass:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pRenderPass:Byte Ptr)"Os"
+Global vkDestroyRenderPass(device:Byte Ptr,renderPass:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkGetRenderAreaGranularity(device:Byte Ptr,renderPass:Byte Ptr,pGranularity:Byte Ptr)"Os"
+Global vkCreateCommandPool:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pCommandPool:Byte Ptr)"Os"
+Global vkDestroyCommandPool(device:Byte Ptr,commandPool:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkResetCommandPool:Int(device:Byte Ptr,commandPool:Byte Ptr,flags:UInt)"Os"
+Global vkAllocateCommandBuffers:Int(device:Byte Ptr,pAllocateInfo:Byte Ptr,pCommandBuffers:Byte Ptr)"Os"
+Global vkFreeCommandBuffers(device:Byte Ptr,commandPool:Byte Ptr,commandBufferCount:UInt,pCommandBuffers:Byte Ptr)"Os"
+Global vkCreateSwapchainKHR:Int(device:Byte Ptr,pCreateInfo:Byte Ptr,pAllocator:Byte Ptr,pSwapchain:Byte Ptr)"Os"
+Global vkDestroySwapchainKHR(device:Byte Ptr,swapchain:Byte Ptr,pAllocator:Byte Ptr)"Os"
+Global vkGetSwapchainImagesKHR:Int(device:Byte Ptr,swapchain:Byte Ptr,pSwapchainImageCount:UInt Ptr,pSwapchainImages:Byte Ptr)"Os"
+Global vkAcquireNextImageKHR:Int(device:Byte Ptr,swapchain:Byte Ptr,timeout:ULong,semaphore:Byte Ptr,fence:Byte Ptr,pImageIndex:UInt Ptr)"Os"
+Global vkCreateSharedSwapchainsKHR:Int(device:Byte Ptr,swapchainCount:UInt,pCreateInfos:Byte Ptr,pAllocator:Byte Ptr,pSwapchains:Byte Ptr)"Os"
+Global vkDebugMarkerSetObjectTagEXT:Int(device:Byte Ptr,pTagInfo:Byte Ptr)"Os"
+Global vkDebugMarkerSetObjectNameEXT:Int(device:Byte Ptr,pNameInfo:Byte Ptr)"Os"
+' Queue functions
+Global vkQueueSubmit:Int(queue:Byte Ptr,submitCount:UInt,pSubmits:Byte Ptr,fence:Byte Ptr)"Os"
+Global vkQueueWaitIdle:Int(queue:Byte Ptr)"Os"
+Global vkQueueBindSparse:Int(queue:Byte Ptr,bindInfoCount:UInt,pBindInfo:Byte Ptr,fence:Byte Ptr)"Os"
+Global vkQueuePresentKHR:Int(queue:Byte Ptr,pPresentInfo:Byte Ptr)"Os"
+' CommandBuffer functions
+Global vkBeginCommandBuffer:Int(commandBuffer:Byte Ptr,pBeginInfo:Byte Ptr)"Os"
+Global vkEndCommandBuffer:Int(commandBuffer:Byte Ptr)"Os"
+Global vkResetCommandBuffer:Int(commandBuffer:Byte Ptr,flags:UInt)"Os"
+Global vkCmdBindPipeline(commandBuffer:Byte Ptr,pipelineBindPoint:Int,pipeline:Byte Ptr)"Os"
+Global vkCmdSetViewport(commandBuffer:Byte Ptr,firstViewport:UInt,viewportCount:UInt,pViewports:Byte Ptr)"Os"
+Global vkCmdSetScissor(commandBuffer:Byte Ptr,firstScissor:UInt,scissorCount:UInt,pScissors:Byte Ptr)"Os"
+Global vkCmdSetLineWidth(commandBuffer:Byte Ptr,lineWidth:Float)"Os"
+Global vkCmdSetDepthBias(commandBuffer:Byte Ptr,depthBiasConstantFactor:Float,depthBiasClamp:Float,depthBiasSlopeFactor:Float)"Os"
+Global vkCmdSetBlendConstants(commandBuffer:Byte Ptr,blendConstants:Float Ptr)"Os"
+Global vkCmdSetDepthBounds(commandBuffer:Byte Ptr,minDepthBounds:Float,maxDepthBounds:Float)"Os"
+Global vkCmdSetStencilCompareMask(commandBuffer:Byte Ptr,faceMask:UInt,compareMask:UInt)"Os"
+Global vkCmdSetStencilWriteMask(commandBuffer:Byte Ptr,faceMask:UInt,writeMask:UInt)"Os"
+Global vkCmdSetStencilReference(commandBuffer:Byte Ptr,faceMask:UInt,reference:UInt)"Os"
+Global vkCmdBindDescriptorSets(commandBuffer:Byte Ptr,pipelineBindPoint:Int,layout:Byte Ptr,firstSet:UInt,descriptorSetCount:UInt,pDescriptorSets:Byte Ptr,dynamicOffsetCount:UInt,pDynamicOffsets:UInt Ptr)"Os"
+Global vkCmdBindIndexBuffer(commandBuffer:Byte Ptr,buffer:Byte Ptr,offset:ULong,indexType:Int)"Os"
+Global vkCmdBindVertexBuffers(commandBuffer:Byte Ptr,firstBinding:UInt,bindingCount:UInt,pBuffers:Byte Ptr,pOffsets:ULong Ptr)"Os"
+Global vkCmdDraw(commandBuffer:Byte Ptr,vertexCount:UInt,instanceCount:UInt,firstVertex:UInt,firstInstance:UInt)"Os"
+Global vkCmdDrawIndexed(commandBuffer:Byte Ptr,indexCount:UInt,instanceCount:UInt,firstIndex:UInt,vertexOffset:Int,firstInstance:UInt)"Os"
+Global vkCmdDrawIndirect(commandBuffer:Byte Ptr,buffer:Byte Ptr,offset:ULong,drawCount:UInt,stride:UInt)"Os"
+Global vkCmdDrawIndexedIndirect(commandBuffer:Byte Ptr,buffer:Byte Ptr,offset:ULong,drawCount:UInt,stride:UInt)"Os"
+Global vkCmdDispatch(commandBuffer:Byte Ptr,x:UInt,y:UInt,z:UInt)"Os"
+Global vkCmdDispatchIndirect(commandBuffer:Byte Ptr,buffer:Byte Ptr,offset:ULong)"Os"
+Global vkCmdCopyBuffer(commandBuffer:Byte Ptr,srcBuffer:Byte Ptr,dstBuffer:Byte Ptr,regionCount:UInt,pRegions:Byte Ptr)"Os"
+Global vkCmdCopyImage(commandBuffer:Byte Ptr,srcImage:Byte Ptr,srcImageLayout:Int,dstImage:Byte Ptr,dstImageLayout:Int,regionCount:UInt,pRegions:Byte Ptr)"Os"
+Global vkCmdBlitImage(commandBuffer:Byte Ptr,srcImage:Byte Ptr,srcImageLayout:Int,dstImage:Byte Ptr,dstImageLayout:Int,regionCount:UInt,pRegions:Byte Ptr,filter:Int)"Os"
+Global vkCmdCopyBufferToImage(commandBuffer:Byte Ptr,srcBuffer:Byte Ptr,dstImage:Byte Ptr,dstImageLayout:Int,regionCount:UInt,pRegions:Byte Ptr)"Os"
+Global vkCmdCopyImageToBuffer(commandBuffer:Byte Ptr,srcImage:Byte Ptr,srcImageLayout:Int,dstBuffer:Byte Ptr,regionCount:UInt,pRegions:Byte Ptr)"Os"
+Global vkCmdUpdateBuffer(commandBuffer:Byte Ptr,dstBuffer:Byte Ptr,dstOffset:ULong,dataSize:ULong,pData:Byte Ptr)"Os"
+Global vkCmdFillBuffer(commandBuffer:Byte Ptr,dstBuffer:Byte Ptr,dstOffset:ULong,size:ULong,data:UInt)"Os"
+Global vkCmdClearColorImage(commandBuffer:Byte Ptr,image:Byte Ptr,imageLayout:Int,pColor:Byte Ptr,rangeCount:UInt,pRanges:Byte Ptr)"Os"
+Global vkCmdClearDepthStencilImage(commandBuffer:Byte Ptr,image:Byte Ptr,imageLayout:Int,pDepthStencil:Byte Ptr,rangeCount:UInt,pRanges:Byte Ptr)"Os"
+Global vkCmdClearAttachments(commandBuffer:Byte Ptr,attachmentCount:UInt,pAttachments:Byte Ptr,rectCount:UInt,pRects:Byte Ptr)"Os"
+Global vkCmdResolveImage(commandBuffer:Byte Ptr,srcImage:Byte Ptr,srcImageLayout:Int,dstImage:Byte Ptr,dstImageLayout:Int,regionCount:UInt,pRegions:Byte Ptr)"Os"
+Global vkCmdSetEvent(commandBuffer:Byte Ptr,event:Byte Ptr,stageMask:UInt)"Os"
+Global vkCmdResetEvent(commandBuffer:Byte Ptr,event:Byte Ptr,stageMask:UInt)"Os"
+Global vkCmdWaitEvents(commandBuffer:Byte Ptr,eventCount:UInt,pEvents:Byte Ptr,srcStageMask:UInt,dstStageMask:UInt,memoryBarrierCount:UInt,pMemoryBarriers:Byte Ptr,bufferMemoryBarrierCount:UInt,pBufferMemoryBarriers:Byte Ptr,imageMemoryBarrierCount:UInt,pImageMemoryBarriers:Byte Ptr)"Os"
+Global vkCmdPipelineBarrier(commandBuffer:Byte Ptr,srcStageMask:UInt,dstStageMask:UInt,dependencyFlags:UInt,memoryBarrierCount:UInt,pMemoryBarriers:Byte Ptr,bufferMemoryBarrierCount:UInt,pBufferMemoryBarriers:Byte Ptr,imageMemoryBarrierCount:UInt,pImageMemoryBarriers:Byte Ptr)"Os"
+Global vkCmdBeginQuery(commandBuffer:Byte Ptr,queryPool:Byte Ptr,query:UInt,flags:UInt)"Os"
+Global vkCmdEndQuery(commandBuffer:Byte Ptr,queryPool:Byte Ptr,query:UInt)"Os"
+Global vkCmdResetQueryPool(commandBuffer:Byte Ptr,queryPool:Byte Ptr,firstQuery:UInt,queryCount:UInt)"Os"
+Global vkCmdWriteTimestamp(commandBuffer:Byte Ptr,pipelineStage:Int,queryPool:Byte Ptr,query:UInt)"Os"
+Global vkCmdCopyQueryPoolResults(commandBuffer:Byte Ptr,queryPool:Byte Ptr,firstQuery:UInt,queryCount:UInt,dstBuffer:Byte Ptr,dstOffset:ULong,stride:ULong,flags:UInt)"Os"
+Global vkCmdPushConstants(commandBuffer:Byte Ptr,layout:Byte Ptr,stageFlags:UInt,offset:UInt,size:UInt,pValues:Byte Ptr)"Os"
+Global vkCmdBeginRenderPass(commandBuffer:Byte Ptr,pRenderPassBegin:Byte Ptr,contents:Int)"Os"
+Global vkCmdNextSubpass(commandBuffer:Byte Ptr,contents:Int)"Os"
+Global vkCmdEndRenderPass(commandBuffer:Byte Ptr)"Os"
+Global vkCmdExecuteCommands(commandBuffer:Byte Ptr,commandBufferCount:UInt,pCommandBuffers:Byte Ptr)"Os"
+Global vkCmdDebugMarkerBeginEXT(commandBuffer:Byte Ptr,pMarkerInfo:Byte Ptr)"Os"
+Global vkCmdDebugMarkerEndEXT(commandBuffer:Byte Ptr)"Os"
+Global vkCmdDebugMarkerInsertEXT(commandBuffer:Byte Ptr,pMarkerInfo:Byte Ptr)"Os"
+Global VK_KHR_SURFACE_SPEC_VERSION:Int = 25
+Global VK_KHR_SURFACE_EXTENSION_NAME:String = "VK_KHR_surface"
+Global VK_COLORSPACE_SRGB_NONLINEAR_KHR:Int = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
+
+Global VK_KHR_SWAPCHAIN_SPEC_VERSION:Int = 68
+Global VK_KHR_SWAPCHAIN_EXTENSION_NAME:String = "VK_KHR_swapchain"
+
+Global VK_KHR_DISPLAY_SPEC_VERSION:Int = 21
+Global VK_KHR_DISPLAY_EXTENSION_NAME:String = "VK_KHR_display"
+
+Global VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION:Int = 9
+Global VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME:String = "VK_KHR_display_swapchain"
+Global VK_KHR_XLIB_SURFACE_SPEC_VERSION:Int =  6
+Global VK_KHR_XLIB_SURFACE_EXTENSION_NAME:String = "VK_KHR_xlib_surface"
+
+Global VK_KHR_XCB_SURFACE_SPEC_VERSION:Int = 6
+Global VK_KHR_XCB_SURFACE_EXTENSION_NAME:String = "VK_KHR_xcb_surface"
+
+Global VK_KHR_WAYLAND_SURFACE_SPEC_VERSION:Int = 5
+Global VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME:String = "VK_KHR_wayland_surface"
+
+Global VK_KHR_MIR_SURFACE_SPEC_VERSION:Int = 4
+Global VK_KHR_MIR_SURFACE_EXTENSION_NAME:String = "VK_KHR_mir_surface"
+
+Global VK_KHR_ANDROID_SURFACE_SPEC_VERSION:Int = 6
+Global VK_KHR_ANDROID_SURFACE_EXTENSION_NAME:String = "VK_KHR_android_surface"
+
+Global VK_KHR_WIN32_SURFACE_SPEC_VERSION:Int = 5
+Global VK_KHR_WIN32_SURFACE_EXTENSION_NAME:String = "VK_KHR_win32_surface"
+
+Global VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION:Int = 1
+Global VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME:String = "VK_KHR_sampler_mirror_clamp_to_edge"
+
+Global VK_EXT_DEBUG_REPORT_SPEC_VERSION:Int = 3
+Global VK_EXT_DEBUG_REPORT_EXTENSION_NAME:String = "VK_EXT_debug_report"
+Global VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT:Int = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
+
+Global VK_NV_GLSL_SHADER_SPEC_VERSION:Int = 1
+Global VK_NV_GLSL_SHADER_EXTENSION_NAME:String = "VK_NV_glsl_shader"
+
+Global VK_IMG_FILTER_CUBIC_SPEC_VERSION:Int = 1
+Global VK_IMG_FILTER_CUBIC_EXTENSION_NAME:String = "VK_IMG_filter_cubic"
+
+Global VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION:Int = 1
+Global VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME:String = "VK_AMD_rasterization_order"
+
+Global VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION:Int = 1
+Global VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME:String = "VK_AMD_shader_trinary_minmax"
+
+Global VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION:Int = 1
+Global VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME:String = "VK_AMD_shader_explicit_vertex_parameter"
+
+Global VK_EXT_DEBUG_MARKER_SPEC_VERSION:Int = 3
+Global VK_EXT_DEBUG_MARKER_EXTENSION_NAME:String = "VK_EXT_debug_marker"
+
+Global VK_AMD_GCN_SHADER_SPEC_VERSION:Int = 1
+Global VK_AMD_GCN_SHADER_EXTENSION_NAME:String = "VK_AMD_gcn_shader"

+ 204 - 0
vulkan.mod/vkLoader.bmx

@@ -0,0 +1,204 @@
+
+SuperStrict
+
+Import "vkOS.bmx"
+Import "vkApi.bmx"
+
+Local VulkanLibrary:Byte Ptr
+For Local lib:String = EachIn GetVulkanLibraryNames()
+	Local DynamicLibrary:Byte Ptr = LoadDynamicLibrary(lib)
+	If DynamicLibrary
+		VulkanLibrary = DynamicLibrary
+		Exit
+	EndIf
+Next
+
+' Get the only mandatory exported function
+If VulkanLibrary
+	vkGetInstanceProcAddr = GetDynamicLibraryFuncAddr( VulkanLibrary,"vkGetInstanceProcAddr" )
+
+	If vkGetInstanceProcAddr LoadVulkanGlobalFunctions()
+EndIf
+
+Function LoadVulkanGlobalFunctions()
+	vkCreateInstance = vkGetInstanceProcAddr(Null,"vkCreateInstance")
+	vkEnumerateInstanceExtensionProperties = vkGetInstanceProcAddr(Null,"vkEnumerateInstanceExtensionProperties")
+	vkEnumerateInstanceLayerProperties = vkGetInstanceProcAddr(Null,"vkEnumerateInstanceLayerProperties")
+EndFunction
+
+Function LoadVulkanInstanceFunctions(instance:Byte Ptr)
+	vkDestroyInstance = vkGetInstanceProcAddr(instance,"vkDestroyInstance")
+	vkEnumeratePhysicalDevices = vkGetInstanceProcAddr(instance,"vkEnumeratePhysicalDevices")
+	vkDestroySurfaceKHR = vkGetInstanceProcAddr(instance,"vkDestroySurfaceKHR")
+	vkCreateDisplayPlaneSurfaceKHR = vkGetInstanceProcAddr(instance,"vkCreateDisplayPlaneSurfaceKHR")
+	vkCreateXlibSurfaceKHR = vkGetInstanceProcAddr(instance,"vkCreateXlibSurfaceKHR")
+	vkCreateXcbSurfaceKHR = vkGetInstanceProcAddr(instance,"vkCreateXcbSurfaceKHR")
+	vkCreateWaylandSurfaceKHR = vkGetInstanceProcAddr(instance,"vkCreateWaylandSurfaceKHR")
+	vkCreateMirSurfaceKHR = vkGetInstanceProcAddr(instance,"vkCreateMirSurfaceKHR")
+	vkCreateAndroidSurfaceKHR = vkGetInstanceProcAddr(instance,"vkCreateAndroidSurfaceKHR")
+	vkCreateWin32SurfaceKHR = vkGetInstanceProcAddr(instance,"vkCreateWin32SurfaceKHR")
+	vkCreateDebugReportCallbackEXT = vkGetInstanceProcAddr(instance,"vkCreateDebugReportCallbackEXT")
+	vkDestroyDebugReportCallbackEXT = vkGetInstanceProcAddr(instance,"vkDestroyDebugReportCallbackEXT")
+	vkDebugReportMessageEXT = vkGetInstanceProcAddr(instance,"vkDebugReportMessageEXT")
+	vkGetPhysicalDeviceFeatures = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceFeatures")
+	vkGetPhysicalDeviceFormatProperties = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceFormatProperties")
+	vkGetPhysicalDeviceImageFormatProperties = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceImageFormatProperties")
+	vkGetPhysicalDeviceProperties = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties")
+	vkGetPhysicalDeviceQueueFamilyProperties = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceQueueFamilyProperties")
+	vkGetPhysicalDeviceMemoryProperties = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceMemoryProperties")
+	vkCreateDevice = vkGetInstanceProcAddr(instance,"vkCreateDevice")
+	vkEnumerateDeviceExtensionProperties = vkGetInstanceProcAddr(instance,"vkEnumerateDeviceExtensionProperties")
+	vkEnumerateDeviceLayerProperties = vkGetInstanceProcAddr(instance,"vkEnumerateDeviceLayerProperties")
+	vkGetPhysicalDeviceSparseImageFormatProperties = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceSparseImageFormatProperties")
+	vkGetPhysicalDeviceSurfaceSupportKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceSurfaceSupportKHR")
+	vkGetPhysicalDeviceSurfaceCapabilitiesKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceSurfaceCapabilitiesKHR")
+	vkGetPhysicalDeviceSurfaceFormatsKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceSurfaceFormatsKHR")
+	vkGetPhysicalDeviceSurfacePresentModesKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceSurfacePresentModesKHR")
+	vkGetPhysicalDeviceDisplayPropertiesKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceDisplayPropertiesKHR")
+	vkGetPhysicalDeviceDisplayPlanePropertiesKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceDisplayPlanePropertiesKHR")
+	vkGetDisplayPlaneSupportedDisplaysKHR = vkGetInstanceProcAddr(instance,"vkGetDisplayPlaneSupportedDisplaysKHR")
+	vkGetDisplayModePropertiesKHR = vkGetInstanceProcAddr(instance,"vkGetDisplayModePropertiesKHR")
+	vkCreateDisplayModeKHR = vkGetInstanceProcAddr(instance,"vkCreateDisplayModeKHR")
+	vkGetDisplayPlaneCapabilitiesKHR = vkGetInstanceProcAddr(instance,"vkGetDisplayPlaneCapabilitiesKHR")
+	vkGetPhysicalDeviceXlibPresentationSupportKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceXlibPresentationSupportKHR")
+	vkGetPhysicalDeviceXcbPresentationSupportKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceXcbPresentationSupportKHR")
+	vkGetPhysicalDeviceWaylandPresentationSupportKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceWaylandPresentationSupportKHR")
+	vkGetPhysicalDeviceMirPresentationSupportKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceMirPresentationSupportKHR")
+	vkGetPhysicalDeviceWin32PresentationSupportKHR = vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceWin32PresentationSupportKHR")
+	vkGetDeviceProcAddr = vkGetInstanceProcAddr(instance,"vkGetDeviceProcAddr")
+EndFunction
+
+Function LoadVulkanDeviceFunctions(device:Byte Ptr)
+	vkDestroyDevice = vkGetDeviceProcAddr(device,"vkDestroyDevice")
+	vkGetDeviceQueue = vkGetDeviceProcAddr(device,"vkGetDeviceQueue")
+	vkDeviceWaitIdle = vkGetDeviceProcAddr(device,"vkDeviceWaitIdle")
+	vkAllocateMemory = vkGetDeviceProcAddr(device,"vkAllocateMemory")
+	vkFreeMemory = vkGetDeviceProcAddr(device,"vkFreeMemory")
+	vkMapMemory = vkGetDeviceProcAddr(device,"vkMapMemory")
+	vkUnmapMemory = vkGetDeviceProcAddr(device,"vkUnmapMemory")
+	vkFlushMappedMemoryRanges = vkGetDeviceProcAddr(device,"vkFlushMappedMemoryRanges")
+	vkInvalidateMappedMemoryRanges = vkGetDeviceProcAddr(device,"vkInvalidateMappedMemoryRanges")
+	vkGetDeviceMemoryCommitment = vkGetDeviceProcAddr(device,"vkGetDeviceMemoryCommitment")
+	vkBindBufferMemory = vkGetDeviceProcAddr(device,"vkBindBufferMemory")
+	vkBindImageMemory = vkGetDeviceProcAddr(device,"vkBindImageMemory")
+	vkGetBufferMemoryRequirements = vkGetDeviceProcAddr(device,"vkGetBufferMemoryRequirements")
+	vkGetImageMemoryRequirements = vkGetDeviceProcAddr(device,"vkGetImageMemoryRequirements")
+	vkGetImageSparseMemoryRequirements = vkGetDeviceProcAddr(device,"vkGetImageSparseMemoryRequirements")
+	vkCreateFence = vkGetDeviceProcAddr(device,"vkCreateFence")
+	vkDestroyFence = vkGetDeviceProcAddr(device,"vkDestroyFence")
+	vkResetFences = vkGetDeviceProcAddr(device,"vkResetFences")
+	vkGetFenceStatus = vkGetDeviceProcAddr(device,"vkGetFenceStatus")
+	vkWaitForFences = vkGetDeviceProcAddr(device,"vkWaitForFences")
+	vkCreateSemaphore = vkGetDeviceProcAddr(device,"vkCreateSemaphore")
+	vkDestroySemaphore = vkGetDeviceProcAddr(device,"vkDestroySemaphore")
+	vkCreateEvent = vkGetDeviceProcAddr(device,"vkCreateEvent")
+	vkDestroyEvent = vkGetDeviceProcAddr(device,"vkDestroyEvent")
+	vkGetEventStatus = vkGetDeviceProcAddr(device,"vkGetEventStatus")
+	vkSetEvent = vkGetDeviceProcAddr(device,"vkSetEvent")
+	vkResetEvent = vkGetDeviceProcAddr(device,"vkResetEvent")
+	vkCreateQueryPool = vkGetDeviceProcAddr(device,"vkCreateQueryPool")
+	vkDestroyQueryPool = vkGetDeviceProcAddr(device,"vkDestroyQueryPool")
+	vkGetQueryPoolResults = vkGetDeviceProcAddr(device,"vkGetQueryPoolResults")
+	vkCreateBuffer = vkGetDeviceProcAddr(device,"vkCreateBuffer")
+	vkDestroyBuffer = vkGetDeviceProcAddr(device,"vkDestroyBuffer")
+	vkCreateBufferView = vkGetDeviceProcAddr(device,"vkCreateBufferView")
+	vkDestroyBufferView = vkGetDeviceProcAddr(device,"vkDestroyBufferView")
+	vkCreateImage = vkGetDeviceProcAddr(device,"vkCreateImage")
+	vkDestroyImage = vkGetDeviceProcAddr(device,"vkDestroyImage")
+	vkGetImageSubresourceLayout = vkGetDeviceProcAddr(device,"vkGetImageSubresourceLayout")
+	vkCreateImageView = vkGetDeviceProcAddr(device,"vkCreateImageView")
+	vkDestroyImageView = vkGetDeviceProcAddr(device,"vkDestroyImageView")
+	vkCreateShaderModule = vkGetDeviceProcAddr(device,"vkCreateShaderModule")
+	vkDestroyShaderModule = vkGetDeviceProcAddr(device,"vkDestroyShaderModule")
+	vkCreatePipelineCache = vkGetDeviceProcAddr(device,"vkCreatePipelineCache")
+	vkDestroyPipelineCache = vkGetDeviceProcAddr(device,"vkDestroyPipelineCache")
+	vkGetPipelineCacheData = vkGetDeviceProcAddr(device,"vkGetPipelineCacheData")
+	vkMergePipelineCaches = vkGetDeviceProcAddr(device,"vkMergePipelineCaches")
+	vkCreateGraphicsPipelines = vkGetDeviceProcAddr(device,"vkCreateGraphicsPipelines")
+	vkCreateComputePipelines = vkGetDeviceProcAddr(device,"vkCreateComputePipelines")
+	vkDestroyPipeline = vkGetDeviceProcAddr(device,"vkDestroyPipeline")
+	vkCreatePipelineLayout = vkGetDeviceProcAddr(device,"vkCreatePipelineLayout")
+	vkDestroyPipelineLayout = vkGetDeviceProcAddr(device,"vkDestroyPipelineLayout")
+	vkCreateSampler = vkGetDeviceProcAddr(device,"vkCreateSampler")
+	vkDestroySampler = vkGetDeviceProcAddr(device,"vkDestroySampler")
+	vkCreateDescriptorSetLayout = vkGetDeviceProcAddr(device,"vkCreateDescriptorSetLayout")
+	vkDestroyDescriptorSetLayout = vkGetDeviceProcAddr(device,"vkDestroyDescriptorSetLayout")
+	vkCreateDescriptorPool = vkGetDeviceProcAddr(device,"vkCreateDescriptorPool")
+	vkDestroyDescriptorPool = vkGetDeviceProcAddr(device,"vkDestroyDescriptorPool")
+	vkResetDescriptorPool = vkGetDeviceProcAddr(device,"vkResetDescriptorPool")
+	vkAllocateDescriptorSets = vkGetDeviceProcAddr(device,"vkAllocateDescriptorSets")
+	vkFreeDescriptorSets = vkGetDeviceProcAddr(device,"vkFreeDescriptorSets")
+	vkUpdateDescriptorSets = vkGetDeviceProcAddr(device,"vkUpdateDescriptorSets")
+	vkCreateFramebuffer = vkGetDeviceProcAddr(device,"vkCreateFramebuffer")
+	vkDestroyFramebuffer = vkGetDeviceProcAddr(device,"vkDestroyFramebuffer")
+	vkCreateRenderPass = vkGetDeviceProcAddr(device,"vkCreateRenderPass")
+	vkDestroyRenderPass = vkGetDeviceProcAddr(device,"vkDestroyRenderPass")
+	vkGetRenderAreaGranularity = vkGetDeviceProcAddr(device,"vkGetRenderAreaGranularity")
+	vkCreateCommandPool = vkGetDeviceProcAddr(device,"vkCreateCommandPool")
+	vkDestroyCommandPool = vkGetDeviceProcAddr(device,"vkDestroyCommandPool")
+	vkResetCommandPool = vkGetDeviceProcAddr(device,"vkResetCommandPool")
+	vkAllocateCommandBuffers = vkGetDeviceProcAddr(device,"vkAllocateCommandBuffers")
+	vkFreeCommandBuffers = vkGetDeviceProcAddr(device,"vkFreeCommandBuffers")
+	vkCreateSwapchainKHR = vkGetDeviceProcAddr(device,"vkCreateSwapchainKHR")
+	vkDestroySwapchainKHR = vkGetDeviceProcAddr(device,"vkDestroySwapchainKHR")
+	vkGetSwapchainImagesKHR = vkGetDeviceProcAddr(device,"vkGetSwapchainImagesKHR")
+	vkAcquireNextImageKHR = vkGetDeviceProcAddr(device,"vkAcquireNextImageKHR")
+	vkCreateSharedSwapchainsKHR = vkGetDeviceProcAddr(device,"vkCreateSharedSwapchainsKHR")
+	vkDebugMarkerSetObjectTagEXT = vkGetDeviceProcAddr(device,"vkDebugMarkerSetObjectTagEXT")
+	vkDebugMarkerSetObjectNameEXT = vkGetDeviceProcAddr(device,"vkDebugMarkerSetObjectNameEXT")
+	vkBeginCommandBuffer = vkGetDeviceProcAddr(device,"vkBeginCommandBuffer")
+	vkEndCommandBuffer = vkGetDeviceProcAddr(device,"vkEndCommandBuffer")
+	vkResetCommandBuffer = vkGetDeviceProcAddr(device,"vkResetCommandBuffer")
+	vkCmdBindPipeline = vkGetDeviceProcAddr(device,"vkCmdBindPipeline")
+	vkCmdSetViewport = vkGetDeviceProcAddr(device,"vkCmdSetViewport")
+	vkCmdSetScissor = vkGetDeviceProcAddr(device,"vkCmdSetScissor")
+	vkCmdSetLineWidth = vkGetDeviceProcAddr(device,"vkCmdSetLineWidth")
+	vkCmdSetDepthBias = vkGetDeviceProcAddr(device,"vkCmdSetDepthBias")
+	vkCmdSetBlendConstants = vkGetDeviceProcAddr(device,"vkCmdSetBlendConstants")
+	vkCmdSetDepthBounds = vkGetDeviceProcAddr(device,"vkCmdSetDepthBounds")
+	vkCmdSetStencilCompareMask = vkGetDeviceProcAddr(device,"vkCmdSetStencilCompareMask")
+	vkCmdSetStencilWriteMask = vkGetDeviceProcAddr(device,"vkCmdSetStencilWriteMask")
+	vkCmdSetStencilReference = vkGetDeviceProcAddr(device,"vkCmdSetStencilReference")
+	vkCmdBindDescriptorSets = vkGetDeviceProcAddr(device,"vkCmdBindDescriptorSets")
+	vkCmdBindIndexBuffer = vkGetDeviceProcAddr(device,"vkCmdBindIndexBuffer")
+	vkCmdBindVertexBuffers = vkGetDeviceProcAddr(device,"vkCmdBindVertexBuffers")
+	vkCmdDraw = vkGetDeviceProcAddr(device,"vkCmdDraw")
+	vkCmdDrawIndexed = vkGetDeviceProcAddr(device,"vkCmdDrawIndexed")
+	vkCmdDrawIndirect = vkGetDeviceProcAddr(device,"vkCmdDrawIndirect")
+	vkCmdDrawIndexedIndirect = vkGetDeviceProcAddr(device,"vkCmdDrawIndexedIndirect")
+	vkCmdDispatch = vkGetDeviceProcAddr(device,"vkCmdDispatch")
+	vkCmdDispatchIndirect = vkGetDeviceProcAddr(device,"vkCmdDispatchIndirect")
+	vkCmdCopyBuffer = vkGetDeviceProcAddr(device,"vkCmdCopyBuffer")
+	vkCmdCopyImage = vkGetDeviceProcAddr(device,"vkCmdCopyImage")
+	vkCmdBlitImage = vkGetDeviceProcAddr(device,"vkCmdBlitImage")
+	vkCmdCopyBufferToImage = vkGetDeviceProcAddr(device,"vkCmdCopyBufferToImage")
+	vkCmdCopyImageToBuffer = vkGetDeviceProcAddr(device,"vkCmdCopyImageToBuffer")
+	vkCmdUpdateBuffer = vkGetDeviceProcAddr(device,"vkCmdUpdateBuffer")
+	vkCmdFillBuffer = vkGetDeviceProcAddr(device,"vkCmdFillBuffer")
+	vkCmdClearColorImage = vkGetDeviceProcAddr(device,"vkCmdClearColorImage")
+	vkCmdClearDepthStencilImage = vkGetDeviceProcAddr(device,"vkCmdClearDepthStencilImage")
+	vkCmdClearAttachments = vkGetDeviceProcAddr(device,"vkCmdClearAttachments")
+	vkCmdResolveImage = vkGetDeviceProcAddr(device,"vkCmdResolveImage")
+	vkCmdSetEvent = vkGetDeviceProcAddr(device,"vkCmdSetEvent")
+	vkCmdResetEvent = vkGetDeviceProcAddr(device,"vkCmdResetEvent")
+	vkCmdWaitEvents = vkGetDeviceProcAddr(device,"vkCmdWaitEvents")
+	vkCmdPipelineBarrier = vkGetDeviceProcAddr(device,"vkCmdPipelineBarrier")
+	vkCmdBeginQuery = vkGetDeviceProcAddr(device,"vkCmdBeginQuery")
+	vkCmdEndQuery = vkGetDeviceProcAddr(device,"vkCmdEndQuery")
+	vkCmdResetQueryPool = vkGetDeviceProcAddr(device,"vkCmdResetQueryPool")
+	vkCmdWriteTimestamp = vkGetDeviceProcAddr(device,"vkCmdWriteTimestamp")
+	vkCmdCopyQueryPoolResults = vkGetDeviceProcAddr(device,"vkCmdCopyQueryPoolResults")
+	vkCmdPushConstants = vkGetDeviceProcAddr(device,"vkCmdPushConstants")
+	vkCmdBeginRenderPass = vkGetDeviceProcAddr(device,"vkCmdBeginRenderPass")
+	vkCmdNextSubpass = vkGetDeviceProcAddr(device,"vkCmdNextSubpass")
+	vkCmdEndRenderPass = vkGetDeviceProcAddr(device,"vkCmdEndRenderPass")
+	vkCmdExecuteCommands = vkGetDeviceProcAddr(device,"vkCmdExecuteCommands")
+	vkCmdDebugMarkerBeginEXT = vkGetDeviceProcAddr(device,"vkCmdDebugMarkerBeginEXT")
+	vkCmdDebugMarkerEndEXT = vkGetDeviceProcAddr(device,"vkCmdDebugMarkerEndEXT")
+	vkCmdDebugMarkerInsertEXT = vkGetDeviceProcAddr(device,"vkCmdDebugMarkerInsertEXT")
+	vkQueueSubmit = vkGetDeviceProcAddr(device,"vkQueueSubmit")
+	vkQueueWaitIdle = vkGetDeviceProcAddr(device,"vkQueueWaitIdle")
+	vkQueueBindSparse = vkGetDeviceProcAddr(device,"vkQueueBindSparse")
+	vkQueuePresentKHR = vkGetDeviceProcAddr(device,"vkQueuePresentKHR")
+EndFunction
+

+ 41 - 0
vulkan.mod/vkOS.bmx

@@ -0,0 +1,41 @@
+
+SuperStrict
+
+?Win32
+Import Pub.Win32
+?linux
+Import "-ldl"
+Extern
+	Function dlopen:Byte Ptr( filename$z, flag:Int )
+	Function dlsym:Byte Ptr( handle:Byte Ptr, funcName$z )
+EndExtern
+?
+
+Function LoadDynamicLibrary:Byte Ptr( LibraryName:String )
+?win32
+	Return LoadLibraryA( LibraryName )
+?linux
+	Return dlopen( LibraryName, 2 )
+?
+EndFunction
+
+Function GetVulkanLibraryNames:String[]()
+?win32
+	Return [ "vulkan-1.dll" ]
+?linux
+	Return [ "libvulkan.so" , "libvulkan.so.1" ]
+?
+EndFunction
+
+Function GetDynamicLibraryFuncAddr:Byte Ptr( lib:Byte Ptr, FuncName:String )
+?win32
+	Return GetProcAddress( lib, FuncName )
+?linux
+	Return dlsym( lib, FuncName )
+?
+EndFunction
+
+Function VK_MAKE_VERSION:Int( major:Int, minor:Int, patch:Int )
+	Return major Shl 22 | minor Shl 12 | patch
+EndFunction
+

+ 25 - 0
vulkan.mod/vulkan.bmx

@@ -0,0 +1,25 @@
+
+'  Copyright (C) 2016 David JJ Camp
+'
+'  This software is provided 'as-is', without any express or implied
+'  warranty.  In no event will the authors be held liable for any damages
+'  arising from the use of this software.
+'
+'  Permission is granted to anyone to use this software for any purpose,
+'  including commercial applications, and to alter it and redistribute it
+'  freely, subject to the following restrictions:
+'
+'  1. The origin of this software must not be misrepresented; you must not
+'     claim that you wrote the original software. If you use this software
+'     in a product, an acknowledgment in the product documentation would be
+'     appreciated but is not required.
+'  2. Altered source versions must be plainly marked as such, and must not be
+'     misrepresented as being the original software.
+'  3. This notice may not be removed or altered from any source distribution.
+
+SuperStrict
+
+Module pub.vulkan
+
+Import "vkLoader.bmx"
+