Quellcode durchsuchen

Strip unneeded semicolons from vendor library

gingerBill vor 4 Jahren
Ursprung
Commit
b450a853d5
46 geänderte Dateien mit 6619 neuen und 6619 gelöschten Zeilen
  1. 1387 1387
      vendor/OpenGL/constants.odin
  2. 106 106
      vendor/OpenGL/helpers.odin
  3. 778 778
      vendor/OpenGL/impl.odin
  4. 17 17
      vendor/OpenGL/wrappers.odin
  5. 26 26
      vendor/glfw/bindings/types.odin
  6. 297 297
      vendor/glfw/constants.odin
  7. 27 27
      vendor/glfw/types.odin
  8. 147 147
      vendor/glfw/wrapper.odin
  9. 40 40
      vendor/portmidi/portmidi.odin
  10. 1 1
      vendor/portmidi/util.odin
  11. 11 11
      vendor/sdl2/image/sdl_image.odin
  12. 42 42
      vendor/sdl2/mixer/sdl_mixer.odin
  13. 36 36
      vendor/sdl2/net/sdl_net.odin
  14. 31 31
      vendor/sdl2/sdl2.odin
  15. 39 39
      vendor/sdl2/sdl_audio.odin
  16. 1 1
      vendor/sdl2/sdl_cpuinfo.odin
  17. 9 9
      vendor/sdl2/sdl_events.odin
  18. 2 2
      vendor/sdl2/sdl_gamecontroller.odin
  19. 23 23
      vendor/sdl2/sdl_gesture_haptic.odin
  20. 122 122
      vendor/sdl2/sdl_hints.odin
  21. 14 14
      vendor/sdl2/sdl_joystick.odin
  22. 4 4
      vendor/sdl2/sdl_keyboard.odin
  23. 19 19
      vendor/sdl2/sdl_keycode.odin
  24. 2 2
      vendor/sdl2/sdl_log.odin
  25. 9 9
      vendor/sdl2/sdl_messagebox.odin
  26. 1 1
      vendor/sdl2/sdl_metal.odin
  27. 11 11
      vendor/sdl2/sdl_mouse.odin
  28. 8 8
      vendor/sdl2/sdl_mutex.odin
  29. 48 48
      vendor/sdl2/sdl_pixels.odin
  30. 3 3
      vendor/sdl2/sdl_rect.odin
  31. 10 10
      vendor/sdl2/sdl_render.odin
  32. 10 10
      vendor/sdl2/sdl_rwops.odin
  33. 266 266
      vendor/sdl2/sdl_scancode.odin
  34. 21 21
      vendor/sdl2/sdl_stdinc.odin
  35. 12 12
      vendor/sdl2/sdl_surface.odin
  36. 7 7
      vendor/sdl2/sdl_system.odin
  37. 4 4
      vendor/sdl2/sdl_thread.odin
  38. 3 3
      vendor/sdl2/sdl_timer.odin
  39. 4 4
      vendor/sdl2/sdl_touch.odin
  40. 35 35
      vendor/sdl2/sdl_video.odin
  41. 4 4
      vendor/sdl2/sdl_vulkan.odin
  42. 23 23
      vendor/sdl2/ttf/sdl_ttf.odin
  43. 744 744
      vendor/vulkan/core.odin
  44. 170 170
      vendor/vulkan/enums.odin
  45. 1854 1854
      vendor/vulkan/procedures.odin
  46. 191 191
      vendor/vulkan/structs.odin

+ 1387 - 1387
vendor/OpenGL/constants.odin

@@ -1,1412 +1,1412 @@
 package odin_gl
 
-FALSE                          :: false;
-TRUE                           :: true;
+FALSE                          :: false
+TRUE                           :: true
 
-DEPTH_BUFFER_BIT               :: 0x00000100;
-STENCIL_BUFFER_BIT             :: 0x00000400;
-COLOR_BUFFER_BIT               :: 0x00004000;
-POINTS                         :: 0x0000;
-LINES                          :: 0x0001;
-LINE_LOOP                      :: 0x0002;
-LINE_STRIP                     :: 0x0003;
-TRIANGLES                      :: 0x0004;
-TRIANGLE_STRIP                 :: 0x0005;
-TRIANGLE_FAN                   :: 0x0006;
-QUADS                          :: 0x0007;
-NEVER                          :: 0x0200;
-LESS                           :: 0x0201;
-EQUAL                          :: 0x0202;
-LEQUAL                         :: 0x0203;
-GREATER                        :: 0x0204;
-NOTEQUAL                       :: 0x0205;
-GEQUAL                         :: 0x0206;
-ALWAYS                         :: 0x0207;
-ZERO                           :: 0;
-ONE                            :: 1;
-SRC_COLOR                      :: 0x0300;
-ONE_MINUS_SRC_COLOR            :: 0x0301;
-SRC_ALPHA                      :: 0x0302;
-ONE_MINUS_SRC_ALPHA            :: 0x0303;
-DST_ALPHA                      :: 0x0304;
-ONE_MINUS_DST_ALPHA            :: 0x0305;
-DST_COLOR                      :: 0x0306;
-ONE_MINUS_DST_COLOR            :: 0x0307;
-SRC_ALPHA_SATURATE             :: 0x0308;
-NONE                           :: 0;
-FRONT_LEFT                     :: 0x0400;
-FRONT_RIGHT                    :: 0x0401;
-BACK_LEFT                      :: 0x0402;
-BACK_RIGHT                     :: 0x0403;
-FRONT                          :: 0x0404;
-BACK                           :: 0x0405;
-LEFT                           :: 0x0406;
-RIGHT                          :: 0x0407;
-FRONT_AND_BACK                 :: 0x0408;
-NO_ERROR                       :: 0;
-INVALID_ENUM                   :: 0x0500;
-INVALID_VALUE                  :: 0x0501;
-INVALID_OPERATION              :: 0x0502;
-OUT_OF_MEMORY                  :: 0x0505;
-CW                             :: 0x0900;
-CCW                            :: 0x0901;
-POINT_SIZE                     :: 0x0B11;
-POINT_SIZE_RANGE               :: 0x0B12;
-POINT_SIZE_GRANULARITY         :: 0x0B13;
-LINE_SMOOTH                    :: 0x0B20;
-LINE_WIDTH                     :: 0x0B21;
-LINE_WIDTH_RANGE               :: 0x0B22;
-LINE_WIDTH_GRANULARITY         :: 0x0B23;
-POLYGON_MODE                   :: 0x0B40;
-POLYGON_SMOOTH                 :: 0x0B41;
-CULL_FACE                      :: 0x0B44;
-CULL_FACE_MODE                 :: 0x0B45;
-FRONT_FACE                     :: 0x0B46;
-DEPTH_RANGE                    :: 0x0B70;
-DEPTH_TEST                     :: 0x0B71;
-DEPTH_WRITEMASK                :: 0x0B72;
-DEPTH_CLEAR_VALUE              :: 0x0B73;
-DEPTH_FUNC                     :: 0x0B74;
-STENCIL_TEST                   :: 0x0B90;
-STENCIL_CLEAR_VALUE            :: 0x0B91;
-STENCIL_FUNC                   :: 0x0B92;
-STENCIL_VALUE_MASK             :: 0x0B93;
-STENCIL_FAIL                   :: 0x0B94;
-STENCIL_PASS_DEPTH_FAIL        :: 0x0B95;
-STENCIL_PASS_DEPTH_PASS        :: 0x0B96;
-STENCIL_REF                    :: 0x0B97;
-STENCIL_WRITEMASK              :: 0x0B98;
-VIEWPORT                       :: 0x0BA2;
-DITHER                         :: 0x0BD0;
-BLEND_DST                      :: 0x0BE0;
-BLEND_SRC                      :: 0x0BE1;
-BLEND                          :: 0x0BE2;
-LOGIC_OP_MODE                  :: 0x0BF0;
-COLOR_LOGIC_OP                 :: 0x0BF2;
-DRAW_BUFFER                    :: 0x0C01;
-READ_BUFFER                    :: 0x0C02;
-SCISSOR_BOX                    :: 0x0C10;
-SCISSOR_TEST                   :: 0x0C11;
-COLOR_CLEAR_VALUE              :: 0x0C22;
-COLOR_WRITEMASK                :: 0x0C23;
-DOUBLEBUFFER                   :: 0x0C32;
-STEREO                         :: 0x0C33;
-LINE_SMOOTH_HINT               :: 0x0C52;
-POLYGON_SMOOTH_HINT            :: 0x0C53;
-UNPACK_SWAP_BYTES              :: 0x0CF0;
-UNPACK_LSB_FIRST               :: 0x0CF1;
-UNPACK_ROW_LENGTH              :: 0x0CF2;
-UNPACK_SKIP_ROWS               :: 0x0CF3;
-UNPACK_SKIP_PIXELS             :: 0x0CF4;
-UNPACK_ALIGNMENT               :: 0x0CF5;
-PACK_SWAP_BYTES                :: 0x0D00;
-PACK_LSB_FIRST                 :: 0x0D01;
-PACK_ROW_LENGTH                :: 0x0D02;
-PACK_SKIP_ROWS                 :: 0x0D03;
-PACK_SKIP_PIXELS               :: 0x0D04;
-PACK_ALIGNMENT                 :: 0x0D05;
-MAX_TEXTURE_SIZE               :: 0x0D33;
-MAX_VIEWPORT_DIMS              :: 0x0D3A;
-SUBPIXEL_BITS                  :: 0x0D50;
-TEXTURE_1D                     :: 0x0DE0;
-TEXTURE_2D                     :: 0x0DE1;
-POLYGON_OFFSET_UNITS           :: 0x2A00;
-POLYGON_OFFSET_POINT           :: 0x2A01;
-POLYGON_OFFSET_LINE            :: 0x2A02;
-POLYGON_OFFSET_FILL            :: 0x8037;
-POLYGON_OFFSET_FACTOR          :: 0x8038;
-TEXTURE_BINDING_1D             :: 0x8068;
-TEXTURE_BINDING_2D             :: 0x8069;
-TEXTURE_WIDTH                  :: 0x1000;
-TEXTURE_HEIGHT                 :: 0x1001;
-TEXTURE_INTERNAL_FORMAT        :: 0x1003;
-TEXTURE_BORDER_COLOR           :: 0x1004;
-TEXTURE_RED_SIZE               :: 0x805C;
-TEXTURE_GREEN_SIZE             :: 0x805D;
-TEXTURE_BLUE_SIZE              :: 0x805E;
-TEXTURE_ALPHA_SIZE             :: 0x805F;
-DONT_CARE                      :: 0x1100;
-FASTEST                        :: 0x1101;
-NICEST                         :: 0x1102;
-BYTE                           :: 0x1400;
-UNSIGNED_BYTE                  :: 0x1401;
-SHORT                          :: 0x1402;
-UNSIGNED_SHORT                 :: 0x1403;
-INT                            :: 0x1404;
-UNSIGNED_INT                   :: 0x1405;
-FLOAT                          :: 0x1406;
-DOUBLE                         :: 0x140A;
-STACK_OVERFLOW                 :: 0x0503;
-STACK_UNDERFLOW                :: 0x0504;
-CLEAR                          :: 0x1500;
-AND                            :: 0x1501;
-AND_REVERSE                    :: 0x1502;
-COPY                           :: 0x1503;
-AND_INVERTED                   :: 0x1504;
-NOOP                           :: 0x1505;
-XOR                            :: 0x1506;
-OR                             :: 0x1507;
-NOR                            :: 0x1508;
-EQUIV                          :: 0x1509;
-INVERT                         :: 0x150A;
-OR_REVERSE                     :: 0x150B;
-COPY_INVERTED                  :: 0x150C;
-OR_INVERTED                    :: 0x150D;
-NAND                           :: 0x150E;
-SET                            :: 0x150F;
-TEXTURE                        :: 0x1702;
-COLOR                          :: 0x1800;
-DEPTH                          :: 0x1801;
-STENCIL                        :: 0x1802;
-STENCIL_INDEX                  :: 0x1901;
-DEPTH_COMPONENT                :: 0x1902;
-RED                            :: 0x1903;
-GREEN                          :: 0x1904;
-BLUE                           :: 0x1905;
-ALPHA                          :: 0x1906;
-RGB                            :: 0x1907;
-RGBA                           :: 0x1908;
-POINT                          :: 0x1B00;
-LINE                           :: 0x1B01;
-FILL                           :: 0x1B02;
-KEEP                           :: 0x1E00;
-REPLACE                        :: 0x1E01;
-INCR                           :: 0x1E02;
-DECR                           :: 0x1E03;
-VENDOR                         :: 0x1F00;
-RENDERER                       :: 0x1F01;
-VERSION                        :: 0x1F02;
-EXTENSIONS                     :: 0x1F03;
-NEAREST                        :: 0x2600;
-LINEAR                         :: 0x2601;
-NEAREST_MIPMAP_NEAREST         :: 0x2700;
-LINEAR_MIPMAP_NEAREST          :: 0x2701;
-NEAREST_MIPMAP_LINEAR          :: 0x2702;
-LINEAR_MIPMAP_LINEAR           :: 0x2703;
-TEXTURE_MAG_FILTER             :: 0x2800;
-TEXTURE_MIN_FILTER             :: 0x2801;
-TEXTURE_WRAP_S                 :: 0x2802;
-TEXTURE_WRAP_T                 :: 0x2803;
-PROXY_TEXTURE_1D               :: 0x8063;
-PROXY_TEXTURE_2D               :: 0x8064;
-REPEAT                         :: 0x2901;
-R3_G3_B2                       :: 0x2A10;
-RGB4                           :: 0x804F;
-RGB5                           :: 0x8050;
-RGB8                           :: 0x8051;
-RGB10                          :: 0x8052;
-RGB12                          :: 0x8053;
-RGB16                          :: 0x8054;
-RGBA2                          :: 0x8055;
-RGBA4                          :: 0x8056;
-RGB5_A1                        :: 0x8057;
-RGBA8                          :: 0x8058;
-RGB10_A2                       :: 0x8059;
-RGBA12                         :: 0x805A;
-RGBA16                         :: 0x805B;
-VERTEX_ARRAY                   :: 0x8074;
+DEPTH_BUFFER_BIT               :: 0x00000100
+STENCIL_BUFFER_BIT             :: 0x00000400
+COLOR_BUFFER_BIT               :: 0x00004000
+POINTS                         :: 0x0000
+LINES                          :: 0x0001
+LINE_LOOP                      :: 0x0002
+LINE_STRIP                     :: 0x0003
+TRIANGLES                      :: 0x0004
+TRIANGLE_STRIP                 :: 0x0005
+TRIANGLE_FAN                   :: 0x0006
+QUADS                          :: 0x0007
+NEVER                          :: 0x0200
+LESS                           :: 0x0201
+EQUAL                          :: 0x0202
+LEQUAL                         :: 0x0203
+GREATER                        :: 0x0204
+NOTEQUAL                       :: 0x0205
+GEQUAL                         :: 0x0206
+ALWAYS                         :: 0x0207
+ZERO                           :: 0
+ONE                            :: 1
+SRC_COLOR                      :: 0x0300
+ONE_MINUS_SRC_COLOR            :: 0x0301
+SRC_ALPHA                      :: 0x0302
+ONE_MINUS_SRC_ALPHA            :: 0x0303
+DST_ALPHA                      :: 0x0304
+ONE_MINUS_DST_ALPHA            :: 0x0305
+DST_COLOR                      :: 0x0306
+ONE_MINUS_DST_COLOR            :: 0x0307
+SRC_ALPHA_SATURATE             :: 0x0308
+NONE                           :: 0
+FRONT_LEFT                     :: 0x0400
+FRONT_RIGHT                    :: 0x0401
+BACK_LEFT                      :: 0x0402
+BACK_RIGHT                     :: 0x0403
+FRONT                          :: 0x0404
+BACK                           :: 0x0405
+LEFT                           :: 0x0406
+RIGHT                          :: 0x0407
+FRONT_AND_BACK                 :: 0x0408
+NO_ERROR                       :: 0
+INVALID_ENUM                   :: 0x0500
+INVALID_VALUE                  :: 0x0501
+INVALID_OPERATION              :: 0x0502
+OUT_OF_MEMORY                  :: 0x0505
+CW                             :: 0x0900
+CCW                            :: 0x0901
+POINT_SIZE                     :: 0x0B11
+POINT_SIZE_RANGE               :: 0x0B12
+POINT_SIZE_GRANULARITY         :: 0x0B13
+LINE_SMOOTH                    :: 0x0B20
+LINE_WIDTH                     :: 0x0B21
+LINE_WIDTH_RANGE               :: 0x0B22
+LINE_WIDTH_GRANULARITY         :: 0x0B23
+POLYGON_MODE                   :: 0x0B40
+POLYGON_SMOOTH                 :: 0x0B41
+CULL_FACE                      :: 0x0B44
+CULL_FACE_MODE                 :: 0x0B45
+FRONT_FACE                     :: 0x0B46
+DEPTH_RANGE                    :: 0x0B70
+DEPTH_TEST                     :: 0x0B71
+DEPTH_WRITEMASK                :: 0x0B72
+DEPTH_CLEAR_VALUE              :: 0x0B73
+DEPTH_FUNC                     :: 0x0B74
+STENCIL_TEST                   :: 0x0B90
+STENCIL_CLEAR_VALUE            :: 0x0B91
+STENCIL_FUNC                   :: 0x0B92
+STENCIL_VALUE_MASK             :: 0x0B93
+STENCIL_FAIL                   :: 0x0B94
+STENCIL_PASS_DEPTH_FAIL        :: 0x0B95
+STENCIL_PASS_DEPTH_PASS        :: 0x0B96
+STENCIL_REF                    :: 0x0B97
+STENCIL_WRITEMASK              :: 0x0B98
+VIEWPORT                       :: 0x0BA2
+DITHER                         :: 0x0BD0
+BLEND_DST                      :: 0x0BE0
+BLEND_SRC                      :: 0x0BE1
+BLEND                          :: 0x0BE2
+LOGIC_OP_MODE                  :: 0x0BF0
+COLOR_LOGIC_OP                 :: 0x0BF2
+DRAW_BUFFER                    :: 0x0C01
+READ_BUFFER                    :: 0x0C02
+SCISSOR_BOX                    :: 0x0C10
+SCISSOR_TEST                   :: 0x0C11
+COLOR_CLEAR_VALUE              :: 0x0C22
+COLOR_WRITEMASK                :: 0x0C23
+DOUBLEBUFFER                   :: 0x0C32
+STEREO                         :: 0x0C33
+LINE_SMOOTH_HINT               :: 0x0C52
+POLYGON_SMOOTH_HINT            :: 0x0C53
+UNPACK_SWAP_BYTES              :: 0x0CF0
+UNPACK_LSB_FIRST               :: 0x0CF1
+UNPACK_ROW_LENGTH              :: 0x0CF2
+UNPACK_SKIP_ROWS               :: 0x0CF3
+UNPACK_SKIP_PIXELS             :: 0x0CF4
+UNPACK_ALIGNMENT               :: 0x0CF5
+PACK_SWAP_BYTES                :: 0x0D00
+PACK_LSB_FIRST                 :: 0x0D01
+PACK_ROW_LENGTH                :: 0x0D02
+PACK_SKIP_ROWS                 :: 0x0D03
+PACK_SKIP_PIXELS               :: 0x0D04
+PACK_ALIGNMENT                 :: 0x0D05
+MAX_TEXTURE_SIZE               :: 0x0D33
+MAX_VIEWPORT_DIMS              :: 0x0D3A
+SUBPIXEL_BITS                  :: 0x0D50
+TEXTURE_1D                     :: 0x0DE0
+TEXTURE_2D                     :: 0x0DE1
+POLYGON_OFFSET_UNITS           :: 0x2A00
+POLYGON_OFFSET_POINT           :: 0x2A01
+POLYGON_OFFSET_LINE            :: 0x2A02
+POLYGON_OFFSET_FILL            :: 0x8037
+POLYGON_OFFSET_FACTOR          :: 0x8038
+TEXTURE_BINDING_1D             :: 0x8068
+TEXTURE_BINDING_2D             :: 0x8069
+TEXTURE_WIDTH                  :: 0x1000
+TEXTURE_HEIGHT                 :: 0x1001
+TEXTURE_INTERNAL_FORMAT        :: 0x1003
+TEXTURE_BORDER_COLOR           :: 0x1004
+TEXTURE_RED_SIZE               :: 0x805C
+TEXTURE_GREEN_SIZE             :: 0x805D
+TEXTURE_BLUE_SIZE              :: 0x805E
+TEXTURE_ALPHA_SIZE             :: 0x805F
+DONT_CARE                      :: 0x1100
+FASTEST                        :: 0x1101
+NICEST                         :: 0x1102
+BYTE                           :: 0x1400
+UNSIGNED_BYTE                  :: 0x1401
+SHORT                          :: 0x1402
+UNSIGNED_SHORT                 :: 0x1403
+INT                            :: 0x1404
+UNSIGNED_INT                   :: 0x1405
+FLOAT                          :: 0x1406
+DOUBLE                         :: 0x140A
+STACK_OVERFLOW                 :: 0x0503
+STACK_UNDERFLOW                :: 0x0504
+CLEAR                          :: 0x1500
+AND                            :: 0x1501
+AND_REVERSE                    :: 0x1502
+COPY                           :: 0x1503
+AND_INVERTED                   :: 0x1504
+NOOP                           :: 0x1505
+XOR                            :: 0x1506
+OR                             :: 0x1507
+NOR                            :: 0x1508
+EQUIV                          :: 0x1509
+INVERT                         :: 0x150A
+OR_REVERSE                     :: 0x150B
+COPY_INVERTED                  :: 0x150C
+OR_INVERTED                    :: 0x150D
+NAND                           :: 0x150E
+SET                            :: 0x150F
+TEXTURE                        :: 0x1702
+COLOR                          :: 0x1800
+DEPTH                          :: 0x1801
+STENCIL                        :: 0x1802
+STENCIL_INDEX                  :: 0x1901
+DEPTH_COMPONENT                :: 0x1902
+RED                            :: 0x1903
+GREEN                          :: 0x1904
+BLUE                           :: 0x1905
+ALPHA                          :: 0x1906
+RGB                            :: 0x1907
+RGBA                           :: 0x1908
+POINT                          :: 0x1B00
+LINE                           :: 0x1B01
+FILL                           :: 0x1B02
+KEEP                           :: 0x1E00
+REPLACE                        :: 0x1E01
+INCR                           :: 0x1E02
+DECR                           :: 0x1E03
+VENDOR                         :: 0x1F00
+RENDERER                       :: 0x1F01
+VERSION                        :: 0x1F02
+EXTENSIONS                     :: 0x1F03
+NEAREST                        :: 0x2600
+LINEAR                         :: 0x2601
+NEAREST_MIPMAP_NEAREST         :: 0x2700
+LINEAR_MIPMAP_NEAREST          :: 0x2701
+NEAREST_MIPMAP_LINEAR          :: 0x2702
+LINEAR_MIPMAP_LINEAR           :: 0x2703
+TEXTURE_MAG_FILTER             :: 0x2800
+TEXTURE_MIN_FILTER             :: 0x2801
+TEXTURE_WRAP_S                 :: 0x2802
+TEXTURE_WRAP_T                 :: 0x2803
+PROXY_TEXTURE_1D               :: 0x8063
+PROXY_TEXTURE_2D               :: 0x8064
+REPEAT                         :: 0x2901
+R3_G3_B2                       :: 0x2A10
+RGB4                           :: 0x804F
+RGB5                           :: 0x8050
+RGB8                           :: 0x8051
+RGB10                          :: 0x8052
+RGB12                          :: 0x8053
+RGB16                          :: 0x8054
+RGBA2                          :: 0x8055
+RGBA4                          :: 0x8056
+RGB5_A1                        :: 0x8057
+RGBA8                          :: 0x8058
+RGB10_A2                       :: 0x8059
+RGBA12                         :: 0x805A
+RGBA16                         :: 0x805B
+VERTEX_ARRAY                   :: 0x8074
 
-UNSIGNED_BYTE_3_3_2            :: 0x8032;
-UNSIGNED_SHORT_4_4_4_4         :: 0x8033;
-UNSIGNED_SHORT_5_5_5_1         :: 0x8034;
-UNSIGNED_INT_8_8_8_8           :: 0x8035;
-UNSIGNED_INT_10_10_10_2        :: 0x8036;
-TEXTURE_BINDING_3D             :: 0x806A;
-PACK_SKIP_IMAGES               :: 0x806B;
-PACK_IMAGE_HEIGHT              :: 0x806C;
-UNPACK_SKIP_IMAGES             :: 0x806D;
-UNPACK_IMAGE_HEIGHT            :: 0x806E;
-TEXTURE_3D                     :: 0x806F;
-PROXY_TEXTURE_3D               :: 0x8070;
-TEXTURE_DEPTH                  :: 0x8071;
-TEXTURE_WRAP_R                 :: 0x8072;
-MAX_3D_TEXTURE_SIZE            :: 0x8073;
-UNSIGNED_BYTE_2_3_3_REV        :: 0x8362;
-UNSIGNED_SHORT_5_6_5           :: 0x8363;
-UNSIGNED_SHORT_5_6_5_REV       :: 0x8364;
-UNSIGNED_SHORT_4_4_4_4_REV     :: 0x8365;
-UNSIGNED_SHORT_1_5_5_5_REV     :: 0x8366;
-UNSIGNED_INT_8_8_8_8_REV       :: 0x8367;
-UNSIGNED_INT_2_10_10_10_REV    :: 0x8368;
-BGR                            :: 0x80E0;
-BGRA                           :: 0x80E1;
-MAX_ELEMENTS_VERTICES          :: 0x80E8;
-MAX_ELEMENTS_INDICES           :: 0x80E9;
-CLAMP_TO_EDGE                  :: 0x812F;
-TEXTURE_MIN_LOD                :: 0x813A;
-TEXTURE_MAX_LOD                :: 0x813B;
-TEXTURE_BASE_LEVEL             :: 0x813C;
-TEXTURE_MAX_LEVEL              :: 0x813D;
-SMOOTH_POINT_SIZE_RANGE        :: 0x0B12;
-SMOOTH_POINT_SIZE_GRANULARITY  :: 0x0B13;
-SMOOTH_LINE_WIDTH_RANGE        :: 0x0B22;
-SMOOTH_LINE_WIDTH_GRANULARITY  :: 0x0B23;
-ALIASED_LINE_WIDTH_RANGE       :: 0x846E;
+UNSIGNED_BYTE_3_3_2            :: 0x8032
+UNSIGNED_SHORT_4_4_4_4         :: 0x8033
+UNSIGNED_SHORT_5_5_5_1         :: 0x8034
+UNSIGNED_INT_8_8_8_8           :: 0x8035
+UNSIGNED_INT_10_10_10_2        :: 0x8036
+TEXTURE_BINDING_3D             :: 0x806A
+PACK_SKIP_IMAGES               :: 0x806B
+PACK_IMAGE_HEIGHT              :: 0x806C
+UNPACK_SKIP_IMAGES             :: 0x806D
+UNPACK_IMAGE_HEIGHT            :: 0x806E
+TEXTURE_3D                     :: 0x806F
+PROXY_TEXTURE_3D               :: 0x8070
+TEXTURE_DEPTH                  :: 0x8071
+TEXTURE_WRAP_R                 :: 0x8072
+MAX_3D_TEXTURE_SIZE            :: 0x8073
+UNSIGNED_BYTE_2_3_3_REV        :: 0x8362
+UNSIGNED_SHORT_5_6_5           :: 0x8363
+UNSIGNED_SHORT_5_6_5_REV       :: 0x8364
+UNSIGNED_SHORT_4_4_4_4_REV     :: 0x8365
+UNSIGNED_SHORT_1_5_5_5_REV     :: 0x8366
+UNSIGNED_INT_8_8_8_8_REV       :: 0x8367
+UNSIGNED_INT_2_10_10_10_REV    :: 0x8368
+BGR                            :: 0x80E0
+BGRA                           :: 0x80E1
+MAX_ELEMENTS_VERTICES          :: 0x80E8
+MAX_ELEMENTS_INDICES           :: 0x80E9
+CLAMP_TO_EDGE                  :: 0x812F
+TEXTURE_MIN_LOD                :: 0x813A
+TEXTURE_MAX_LOD                :: 0x813B
+TEXTURE_BASE_LEVEL             :: 0x813C
+TEXTURE_MAX_LEVEL              :: 0x813D
+SMOOTH_POINT_SIZE_RANGE        :: 0x0B12
+SMOOTH_POINT_SIZE_GRANULARITY  :: 0x0B13
+SMOOTH_LINE_WIDTH_RANGE        :: 0x0B22
+SMOOTH_LINE_WIDTH_GRANULARITY  :: 0x0B23
+ALIASED_LINE_WIDTH_RANGE       :: 0x846E
 
-TEXTURE0                       :: 0x84C0;
-TEXTURE1                       :: 0x84C1;
-TEXTURE2                       :: 0x84C2;
-TEXTURE3                       :: 0x84C3;
-TEXTURE4                       :: 0x84C4;
-TEXTURE5                       :: 0x84C5;
-TEXTURE6                       :: 0x84C6;
-TEXTURE7                       :: 0x84C7;
-TEXTURE8                       :: 0x84C8;
-TEXTURE9                       :: 0x84C9;
-TEXTURE10                      :: 0x84CA;
-TEXTURE11                      :: 0x84CB;
-TEXTURE12                      :: 0x84CC;
-TEXTURE13                      :: 0x84CD;
-TEXTURE14                      :: 0x84CE;
-TEXTURE15                      :: 0x84CF;
-TEXTURE16                      :: 0x84D0;
-TEXTURE17                      :: 0x84D1;
-TEXTURE18                      :: 0x84D2;
-TEXTURE19                      :: 0x84D3;
-TEXTURE20                      :: 0x84D4;
-TEXTURE21                      :: 0x84D5;
-TEXTURE22                      :: 0x84D6;
-TEXTURE23                      :: 0x84D7;
-TEXTURE24                      :: 0x84D8;
-TEXTURE25                      :: 0x84D9;
-TEXTURE26                      :: 0x84DA;
-TEXTURE27                      :: 0x84DB;
-TEXTURE28                      :: 0x84DC;
-TEXTURE29                      :: 0x84DD;
-TEXTURE30                      :: 0x84DE;
-TEXTURE31                      :: 0x84DF;
-ACTIVE_TEXTURE                 :: 0x84E0;
-MULTISAMPLE                    :: 0x809D;
-SAMPLE_ALPHA_TO_COVERAGE       :: 0x809E;
-SAMPLE_ALPHA_TO_ONE            :: 0x809F;
-SAMPLE_COVERAGE                :: 0x80A0;
-SAMPLE_BUFFERS                 :: 0x80A8;
-SAMPLES                        :: 0x80A9;
-SAMPLE_COVERAGE_VALUE          :: 0x80AA;
-SAMPLE_COVERAGE_INVERT         :: 0x80AB;
-TEXTURE_CUBE_MAP               :: 0x8513;
-TEXTURE_BINDING_CUBE_MAP       :: 0x8514;
-TEXTURE_CUBE_MAP_POSITIVE_X    :: 0x8515;
-TEXTURE_CUBE_MAP_NEGATIVE_X    :: 0x8516;
-TEXTURE_CUBE_MAP_POSITIVE_Y    :: 0x8517;
-TEXTURE_CUBE_MAP_NEGATIVE_Y    :: 0x8518;
-TEXTURE_CUBE_MAP_POSITIVE_Z    :: 0x8519;
-TEXTURE_CUBE_MAP_NEGATIVE_Z    :: 0x851A;
-PROXY_TEXTURE_CUBE_MAP         :: 0x851B;
-MAX_CUBE_MAP_TEXTURE_SIZE      :: 0x851C;
-COMPRESSED_RGB                 :: 0x84ED;
-COMPRESSED_RGBA                :: 0x84EE;
-TEXTURE_COMPRESSION_HINT       :: 0x84EF;
-TEXTURE_COMPRESSED_IMAGE_SIZE  :: 0x86A0;
-TEXTURE_COMPRESSED             :: 0x86A1;
-NUM_COMPRESSED_TEXTURE_FORMATS :: 0x86A2;
-COMPRESSED_TEXTURE_FORMATS     :: 0x86A3;
-CLAMP_TO_BORDER                :: 0x812D;
+TEXTURE0                       :: 0x84C0
+TEXTURE1                       :: 0x84C1
+TEXTURE2                       :: 0x84C2
+TEXTURE3                       :: 0x84C3
+TEXTURE4                       :: 0x84C4
+TEXTURE5                       :: 0x84C5
+TEXTURE6                       :: 0x84C6
+TEXTURE7                       :: 0x84C7
+TEXTURE8                       :: 0x84C8
+TEXTURE9                       :: 0x84C9
+TEXTURE10                      :: 0x84CA
+TEXTURE11                      :: 0x84CB
+TEXTURE12                      :: 0x84CC
+TEXTURE13                      :: 0x84CD
+TEXTURE14                      :: 0x84CE
+TEXTURE15                      :: 0x84CF
+TEXTURE16                      :: 0x84D0
+TEXTURE17                      :: 0x84D1
+TEXTURE18                      :: 0x84D2
+TEXTURE19                      :: 0x84D3
+TEXTURE20                      :: 0x84D4
+TEXTURE21                      :: 0x84D5
+TEXTURE22                      :: 0x84D6
+TEXTURE23                      :: 0x84D7
+TEXTURE24                      :: 0x84D8
+TEXTURE25                      :: 0x84D9
+TEXTURE26                      :: 0x84DA
+TEXTURE27                      :: 0x84DB
+TEXTURE28                      :: 0x84DC
+TEXTURE29                      :: 0x84DD
+TEXTURE30                      :: 0x84DE
+TEXTURE31                      :: 0x84DF
+ACTIVE_TEXTURE                 :: 0x84E0
+MULTISAMPLE                    :: 0x809D
+SAMPLE_ALPHA_TO_COVERAGE       :: 0x809E
+SAMPLE_ALPHA_TO_ONE            :: 0x809F
+SAMPLE_COVERAGE                :: 0x80A0
+SAMPLE_BUFFERS                 :: 0x80A8
+SAMPLES                        :: 0x80A9
+SAMPLE_COVERAGE_VALUE          :: 0x80AA
+SAMPLE_COVERAGE_INVERT         :: 0x80AB
+TEXTURE_CUBE_MAP               :: 0x8513
+TEXTURE_BINDING_CUBE_MAP       :: 0x8514
+TEXTURE_CUBE_MAP_POSITIVE_X    :: 0x8515
+TEXTURE_CUBE_MAP_NEGATIVE_X    :: 0x8516
+TEXTURE_CUBE_MAP_POSITIVE_Y    :: 0x8517
+TEXTURE_CUBE_MAP_NEGATIVE_Y    :: 0x8518
+TEXTURE_CUBE_MAP_POSITIVE_Z    :: 0x8519
+TEXTURE_CUBE_MAP_NEGATIVE_Z    :: 0x851A
+PROXY_TEXTURE_CUBE_MAP         :: 0x851B
+MAX_CUBE_MAP_TEXTURE_SIZE      :: 0x851C
+COMPRESSED_RGB                 :: 0x84ED
+COMPRESSED_RGBA                :: 0x84EE
+TEXTURE_COMPRESSION_HINT       :: 0x84EF
+TEXTURE_COMPRESSED_IMAGE_SIZE  :: 0x86A0
+TEXTURE_COMPRESSED             :: 0x86A1
+NUM_COMPRESSED_TEXTURE_FORMATS :: 0x86A2
+COMPRESSED_TEXTURE_FORMATS     :: 0x86A3
+CLAMP_TO_BORDER                :: 0x812D
 
-BLEND_DST_RGB                  :: 0x80C8;
-BLEND_SRC_RGB                  :: 0x80C9;
-BLEND_DST_ALPHA                :: 0x80CA;
-BLEND_SRC_ALPHA                :: 0x80CB;
-POINT_FADE_THRESHOLD_SIZE      :: 0x8128;
-DEPTH_COMPONENT16              :: 0x81A5;
-DEPTH_COMPONENT24              :: 0x81A6;
-DEPTH_COMPONENT32              :: 0x81A7;
-MIRRORED_REPEAT                :: 0x8370;
-MAX_TEXTURE_LOD_BIAS           :: 0x84FD;
-TEXTURE_LOD_BIAS               :: 0x8501;
-INCR_WRAP                      :: 0x8507;
-DECR_WRAP                      :: 0x8508;
-TEXTURE_DEPTH_SIZE             :: 0x884A;
-TEXTURE_COMPARE_MODE           :: 0x884C;
-TEXTURE_COMPARE_FUNC           :: 0x884D;
-FUNC_ADD                       :: 0x8006;
-FUNC_SUBTRACT                  :: 0x800A;
-FUNC_REVERSE_SUBTRACT          :: 0x800B;
-MIN                            :: 0x8007;
-MAX                            :: 0x8008;
-CONSTANT_COLOR                 :: 0x8001;
-ONE_MINUS_CONSTANT_COLOR       :: 0x8002;
-CONSTANT_ALPHA                 :: 0x8003;
-ONE_MINUS_CONSTANT_ALPHA       :: 0x8004;
+BLEND_DST_RGB                  :: 0x80C8
+BLEND_SRC_RGB                  :: 0x80C9
+BLEND_DST_ALPHA                :: 0x80CA
+BLEND_SRC_ALPHA                :: 0x80CB
+POINT_FADE_THRESHOLD_SIZE      :: 0x8128
+DEPTH_COMPONENT16              :: 0x81A5
+DEPTH_COMPONENT24              :: 0x81A6
+DEPTH_COMPONENT32              :: 0x81A7
+MIRRORED_REPEAT                :: 0x8370
+MAX_TEXTURE_LOD_BIAS           :: 0x84FD
+TEXTURE_LOD_BIAS               :: 0x8501
+INCR_WRAP                      :: 0x8507
+DECR_WRAP                      :: 0x8508
+TEXTURE_DEPTH_SIZE             :: 0x884A
+TEXTURE_COMPARE_MODE           :: 0x884C
+TEXTURE_COMPARE_FUNC           :: 0x884D
+FUNC_ADD                       :: 0x8006
+FUNC_SUBTRACT                  :: 0x800A
+FUNC_REVERSE_SUBTRACT          :: 0x800B
+MIN                            :: 0x8007
+MAX                            :: 0x8008
+CONSTANT_COLOR                 :: 0x8001
+ONE_MINUS_CONSTANT_COLOR       :: 0x8002
+CONSTANT_ALPHA                 :: 0x8003
+ONE_MINUS_CONSTANT_ALPHA       :: 0x8004
 
-BUFFER_SIZE                    :: 0x8764;
-BUFFER_USAGE                   :: 0x8765;
-QUERY_COUNTER_BITS             :: 0x8864;
-CURRENT_QUERY                  :: 0x8865;
-QUERY_RESULT                   :: 0x8866;
-QUERY_RESULT_AVAILABLE         :: 0x8867;
-ARRAY_BUFFER                   :: 0x8892;
-ELEMENT_ARRAY_BUFFER           :: 0x8893;
-ARRAY_BUFFER_BINDING           :: 0x8894;
-ELEMENT_ARRAY_BUFFER_BINDING   :: 0x8895;
-VERTEX_ATTRIB_ARRAY_BUFFER_BINDING :: 0x889F;
-READ_ONLY                      :: 0x88B8;
-WRITE_ONLY                     :: 0x88B9;
-READ_WRITE                     :: 0x88BA;
-BUFFER_ACCESS                  :: 0x88BB;
-BUFFER_MAPPED                  :: 0x88BC;
-BUFFER_MAP_POINTER             :: 0x88BD;
-STREAM_DRAW                    :: 0x88E0;
-STREAM_READ                    :: 0x88E1;
-STREAM_COPY                    :: 0x88E2;
-STATIC_DRAW                    :: 0x88E4;
-STATIC_READ                    :: 0x88E5;
-STATIC_COPY                    :: 0x88E6;
-DYNAMIC_DRAW                   :: 0x88E8;
-DYNAMIC_READ                   :: 0x88E9;
-DYNAMIC_COPY                   :: 0x88EA;
-SAMPLES_PASSED                 :: 0x8914;
-SRC1_ALPHA                     :: 0x8589;
+BUFFER_SIZE                    :: 0x8764
+BUFFER_USAGE                   :: 0x8765
+QUERY_COUNTER_BITS             :: 0x8864
+CURRENT_QUERY                  :: 0x8865
+QUERY_RESULT                   :: 0x8866
+QUERY_RESULT_AVAILABLE         :: 0x8867
+ARRAY_BUFFER                   :: 0x8892
+ELEMENT_ARRAY_BUFFER           :: 0x8893
+ARRAY_BUFFER_BINDING           :: 0x8894
+ELEMENT_ARRAY_BUFFER_BINDING   :: 0x8895
+VERTEX_ATTRIB_ARRAY_BUFFER_BINDING :: 0x889F
+READ_ONLY                      :: 0x88B8
+WRITE_ONLY                     :: 0x88B9
+READ_WRITE                     :: 0x88BA
+BUFFER_ACCESS                  :: 0x88BB
+BUFFER_MAPPED                  :: 0x88BC
+BUFFER_MAP_POINTER             :: 0x88BD
+STREAM_DRAW                    :: 0x88E0
+STREAM_READ                    :: 0x88E1
+STREAM_COPY                    :: 0x88E2
+STATIC_DRAW                    :: 0x88E4
+STATIC_READ                    :: 0x88E5
+STATIC_COPY                    :: 0x88E6
+DYNAMIC_DRAW                   :: 0x88E8
+DYNAMIC_READ                   :: 0x88E9
+DYNAMIC_COPY                   :: 0x88EA
+SAMPLES_PASSED                 :: 0x8914
+SRC1_ALPHA                     :: 0x8589
 
-BLEND_EQUATION_RGB             :: 0x8009;
-VERTEX_ATTRIB_ARRAY_ENABLED    :: 0x8622;
-VERTEX_ATTRIB_ARRAY_SIZE       :: 0x8623;
-VERTEX_ATTRIB_ARRAY_STRIDE     :: 0x8624;
-VERTEX_ATTRIB_ARRAY_TYPE       :: 0x8625;
-CURRENT_VERTEX_ATTRIB          :: 0x8626;
-VERTEX_PROGRAM_POINT_SIZE      :: 0x8642;
-VERTEX_ATTRIB_ARRAY_POINTER    :: 0x8645;
-STENCIL_BACK_FUNC              :: 0x8800;
-STENCIL_BACK_FAIL              :: 0x8801;
-STENCIL_BACK_PASS_DEPTH_FAIL   :: 0x8802;
-STENCIL_BACK_PASS_DEPTH_PASS   :: 0x8803;
-MAX_DRAW_BUFFERS               :: 0x8824;
-DRAW_BUFFER0                   :: 0x8825;
-DRAW_BUFFER1                   :: 0x8826;
-DRAW_BUFFER2                   :: 0x8827;
-DRAW_BUFFER3                   :: 0x8828;
-DRAW_BUFFER4                   :: 0x8829;
-DRAW_BUFFER5                   :: 0x882A;
-DRAW_BUFFER6                   :: 0x882B;
-DRAW_BUFFER7                   :: 0x882C;
-DRAW_BUFFER8                   :: 0x882D;
-DRAW_BUFFER9                   :: 0x882E;
-DRAW_BUFFER10                  :: 0x882F;
-DRAW_BUFFER11                  :: 0x8830;
-DRAW_BUFFER12                  :: 0x8831;
-DRAW_BUFFER13                  :: 0x8832;
-DRAW_BUFFER14                  :: 0x8833;
-DRAW_BUFFER15                  :: 0x8834;
-BLEND_EQUATION_ALPHA           :: 0x883D;
-MAX_VERTEX_ATTRIBS             :: 0x8869;
-VERTEX_ATTRIB_ARRAY_NORMALIZED :: 0x886A;
-MAX_TEXTURE_IMAGE_UNITS        :: 0x8872;
-FRAGMENT_SHADER                :: 0x8B30;
-VERTEX_SHADER                  :: 0x8B31;
-MAX_FRAGMENT_UNIFORM_COMPONENTS :: 0x8B49;
-MAX_VERTEX_UNIFORM_COMPONENTS  :: 0x8B4A;
-MAX_VARYING_FLOATS             :: 0x8B4B;
-MAX_VERTEX_TEXTURE_IMAGE_UNITS :: 0x8B4C;
-MAX_COMBINED_TEXTURE_IMAGE_UNITS :: 0x8B4D;
-SHADER_TYPE                    :: 0x8B4F;
-FLOAT_VEC2                     :: 0x8B50;
-FLOAT_VEC3                     :: 0x8B51;
-FLOAT_VEC4                     :: 0x8B52;
-INT_VEC2                       :: 0x8B53;
-INT_VEC3                       :: 0x8B54;
-INT_VEC4                       :: 0x8B55;
-BOOL                           :: 0x8B56;
-BOOL_VEC2                      :: 0x8B57;
-BOOL_VEC3                      :: 0x8B58;
-BOOL_VEC4                      :: 0x8B59;
-FLOAT_MAT2                     :: 0x8B5A;
-FLOAT_MAT3                     :: 0x8B5B;
-FLOAT_MAT4                     :: 0x8B5C;
-SAMPLER_1D                     :: 0x8B5D;
-SAMPLER_2D                     :: 0x8B5E;
-SAMPLER_3D                     :: 0x8B5F;
-SAMPLER_CUBE                   :: 0x8B60;
-SAMPLER_1D_SHADOW              :: 0x8B61;
-SAMPLER_2D_SHADOW              :: 0x8B62;
-DELETE_STATUS                  :: 0x8B80;
-COMPILE_STATUS                 :: 0x8B81;
-LINK_STATUS                    :: 0x8B82;
-VALIDATE_STATUS                :: 0x8B83;
-INFO_LOG_LENGTH                :: 0x8B84;
-ATTACHED_SHADERS               :: 0x8B85;
-ACTIVE_UNIFORMS                :: 0x8B86;
-ACTIVE_UNIFORM_MAX_LENGTH      :: 0x8B87;
-SHADER_SOURCE_LENGTH           :: 0x8B88;
-ACTIVE_ATTRIBUTES              :: 0x8B89;
-ACTIVE_ATTRIBUTE_MAX_LENGTH    :: 0x8B8A;
-FRAGMENT_SHADER_DERIVATIVE_HINT :: 0x8B8B;
-SHADING_LANGUAGE_VERSION       :: 0x8B8C;
-CURRENT_PROGRAM                :: 0x8B8D;
-POINT_SPRITE_COORD_ORIGIN      :: 0x8CA0;
-LOWER_LEFT                     :: 0x8CA1;
-UPPER_LEFT                     :: 0x8CA2;
-STENCIL_BACK_REF               :: 0x8CA3;
-STENCIL_BACK_VALUE_MASK        :: 0x8CA4;
-STENCIL_BACK_WRITEMASK         :: 0x8CA5;
+BLEND_EQUATION_RGB             :: 0x8009
+VERTEX_ATTRIB_ARRAY_ENABLED    :: 0x8622
+VERTEX_ATTRIB_ARRAY_SIZE       :: 0x8623
+VERTEX_ATTRIB_ARRAY_STRIDE     :: 0x8624
+VERTEX_ATTRIB_ARRAY_TYPE       :: 0x8625
+CURRENT_VERTEX_ATTRIB          :: 0x8626
+VERTEX_PROGRAM_POINT_SIZE      :: 0x8642
+VERTEX_ATTRIB_ARRAY_POINTER    :: 0x8645
+STENCIL_BACK_FUNC              :: 0x8800
+STENCIL_BACK_FAIL              :: 0x8801
+STENCIL_BACK_PASS_DEPTH_FAIL   :: 0x8802
+STENCIL_BACK_PASS_DEPTH_PASS   :: 0x8803
+MAX_DRAW_BUFFERS               :: 0x8824
+DRAW_BUFFER0                   :: 0x8825
+DRAW_BUFFER1                   :: 0x8826
+DRAW_BUFFER2                   :: 0x8827
+DRAW_BUFFER3                   :: 0x8828
+DRAW_BUFFER4                   :: 0x8829
+DRAW_BUFFER5                   :: 0x882A
+DRAW_BUFFER6                   :: 0x882B
+DRAW_BUFFER7                   :: 0x882C
+DRAW_BUFFER8                   :: 0x882D
+DRAW_BUFFER9                   :: 0x882E
+DRAW_BUFFER10                  :: 0x882F
+DRAW_BUFFER11                  :: 0x8830
+DRAW_BUFFER12                  :: 0x8831
+DRAW_BUFFER13                  :: 0x8832
+DRAW_BUFFER14                  :: 0x8833
+DRAW_BUFFER15                  :: 0x8834
+BLEND_EQUATION_ALPHA           :: 0x883D
+MAX_VERTEX_ATTRIBS             :: 0x8869
+VERTEX_ATTRIB_ARRAY_NORMALIZED :: 0x886A
+MAX_TEXTURE_IMAGE_UNITS        :: 0x8872
+FRAGMENT_SHADER                :: 0x8B30
+VERTEX_SHADER                  :: 0x8B31
+MAX_FRAGMENT_UNIFORM_COMPONENTS :: 0x8B49
+MAX_VERTEX_UNIFORM_COMPONENTS  :: 0x8B4A
+MAX_VARYING_FLOATS             :: 0x8B4B
+MAX_VERTEX_TEXTURE_IMAGE_UNITS :: 0x8B4C
+MAX_COMBINED_TEXTURE_IMAGE_UNITS :: 0x8B4D
+SHADER_TYPE                    :: 0x8B4F
+FLOAT_VEC2                     :: 0x8B50
+FLOAT_VEC3                     :: 0x8B51
+FLOAT_VEC4                     :: 0x8B52
+INT_VEC2                       :: 0x8B53
+INT_VEC3                       :: 0x8B54
+INT_VEC4                       :: 0x8B55
+BOOL                           :: 0x8B56
+BOOL_VEC2                      :: 0x8B57
+BOOL_VEC3                      :: 0x8B58
+BOOL_VEC4                      :: 0x8B59
+FLOAT_MAT2                     :: 0x8B5A
+FLOAT_MAT3                     :: 0x8B5B
+FLOAT_MAT4                     :: 0x8B5C
+SAMPLER_1D                     :: 0x8B5D
+SAMPLER_2D                     :: 0x8B5E
+SAMPLER_3D                     :: 0x8B5F
+SAMPLER_CUBE                   :: 0x8B60
+SAMPLER_1D_SHADOW              :: 0x8B61
+SAMPLER_2D_SHADOW              :: 0x8B62
+DELETE_STATUS                  :: 0x8B80
+COMPILE_STATUS                 :: 0x8B81
+LINK_STATUS                    :: 0x8B82
+VALIDATE_STATUS                :: 0x8B83
+INFO_LOG_LENGTH                :: 0x8B84
+ATTACHED_SHADERS               :: 0x8B85
+ACTIVE_UNIFORMS                :: 0x8B86
+ACTIVE_UNIFORM_MAX_LENGTH      :: 0x8B87
+SHADER_SOURCE_LENGTH           :: 0x8B88
+ACTIVE_ATTRIBUTES              :: 0x8B89
+ACTIVE_ATTRIBUTE_MAX_LENGTH    :: 0x8B8A
+FRAGMENT_SHADER_DERIVATIVE_HINT :: 0x8B8B
+SHADING_LANGUAGE_VERSION       :: 0x8B8C
+CURRENT_PROGRAM                :: 0x8B8D
+POINT_SPRITE_COORD_ORIGIN      :: 0x8CA0
+LOWER_LEFT                     :: 0x8CA1
+UPPER_LEFT                     :: 0x8CA2
+STENCIL_BACK_REF               :: 0x8CA3
+STENCIL_BACK_VALUE_MASK        :: 0x8CA4
+STENCIL_BACK_WRITEMASK         :: 0x8CA5
 
-PIXEL_PACK_BUFFER              :: 0x88EB;
-PIXEL_UNPACK_BUFFER            :: 0x88EC;
-PIXEL_PACK_BUFFER_BINDING      :: 0x88ED;
-PIXEL_UNPACK_BUFFER_BINDING    :: 0x88EF;
-FLOAT_MAT2x3                   :: 0x8B65;
-FLOAT_MAT2x4                   :: 0x8B66;
-FLOAT_MAT3x2                   :: 0x8B67;
-FLOAT_MAT3x4                   :: 0x8B68;
-FLOAT_MAT4x2                   :: 0x8B69;
-FLOAT_MAT4x3                   :: 0x8B6A;
-SRGB                           :: 0x8C40;
-SRGB8                          :: 0x8C41;
-SRGB_ALPHA                     :: 0x8C42;
-SRGB8_ALPHA8                   :: 0x8C43;
-COMPRESSED_SRGB                :: 0x8C48;
-COMPRESSED_SRGB_ALPHA          :: 0x8C49;
+PIXEL_PACK_BUFFER              :: 0x88EB
+PIXEL_UNPACK_BUFFER            :: 0x88EC
+PIXEL_PACK_BUFFER_BINDING      :: 0x88ED
+PIXEL_UNPACK_BUFFER_BINDING    :: 0x88EF
+FLOAT_MAT2x3                   :: 0x8B65
+FLOAT_MAT2x4                   :: 0x8B66
+FLOAT_MAT3x2                   :: 0x8B67
+FLOAT_MAT3x4                   :: 0x8B68
+FLOAT_MAT4x2                   :: 0x8B69
+FLOAT_MAT4x3                   :: 0x8B6A
+SRGB                           :: 0x8C40
+SRGB8                          :: 0x8C41
+SRGB_ALPHA                     :: 0x8C42
+SRGB8_ALPHA8                   :: 0x8C43
+COMPRESSED_SRGB                :: 0x8C48
+COMPRESSED_SRGB_ALPHA          :: 0x8C49
 
-COMPARE_REF_TO_TEXTURE         :: 0x884E;
-CLIP_DISTANCE0                 :: 0x3000;
-CLIP_DISTANCE1                 :: 0x3001;
-CLIP_DISTANCE2                 :: 0x3002;
-CLIP_DISTANCE3                 :: 0x3003;
-CLIP_DISTANCE4                 :: 0x3004;
-CLIP_DISTANCE5                 :: 0x3005;
-CLIP_DISTANCE6                 :: 0x3006;
-CLIP_DISTANCE7                 :: 0x3007;
-MAX_CLIP_DISTANCES             :: 0x0D32;
-MAJOR_VERSION                  :: 0x821B;
-MINOR_VERSION                  :: 0x821C;
-NUM_EXTENSIONS                 :: 0x821D;
-CONTEXT_FLAGS                  :: 0x821E;
-COMPRESSED_RED                 :: 0x8225;
-COMPRESSED_RG                  :: 0x8226;
-CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT :: 0x00000001;
-RGBA32F                        :: 0x8814;
-RGB32F                         :: 0x8815;
-RGBA16F                        :: 0x881A;
-RGB16F                         :: 0x881B;
-VERTEX_ATTRIB_ARRAY_INTEGER    :: 0x88FD;
-MAX_ARRAY_TEXTURE_LAYERS       :: 0x88FF;
-MIN_PROGRAM_TEXEL_OFFSET       :: 0x8904;
-MAX_PROGRAM_TEXEL_OFFSET       :: 0x8905;
-CLAMP_READ_COLOR               :: 0x891C;
-FIXED_ONLY                     :: 0x891D;
-MAX_VARYING_COMPONENTS         :: 0x8B4B;
-TEXTURE_1D_ARRAY               :: 0x8C18;
-PROXY_TEXTURE_1D_ARRAY         :: 0x8C19;
-TEXTURE_2D_ARRAY               :: 0x8C1A;
-PROXY_TEXTURE_2D_ARRAY         :: 0x8C1B;
-TEXTURE_BINDING_1D_ARRAY       :: 0x8C1C;
-TEXTURE_BINDING_2D_ARRAY       :: 0x8C1D;
-R11F_G11F_B10F                 :: 0x8C3A;
-UNSIGNED_INT_10F_11F_11F_REV   :: 0x8C3B;
-RGB9_E5                        :: 0x8C3D;
-UNSIGNED_INT_5_9_9_9_REV       :: 0x8C3E;
-TEXTURE_SHARED_SIZE            :: 0x8C3F;
-TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH :: 0x8C76;
-TRANSFORM_FEEDBACK_BUFFER_MODE :: 0x8C7F;
-MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS :: 0x8C80;
-TRANSFORM_FEEDBACK_VARYINGS    :: 0x8C83;
-TRANSFORM_FEEDBACK_BUFFER_START :: 0x8C84;
-TRANSFORM_FEEDBACK_BUFFER_SIZE :: 0x8C85;
-PRIMITIVES_GENERATED           :: 0x8C87;
-TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN :: 0x8C88;
-RASTERIZER_DISCARD             :: 0x8C89;
-MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS :: 0x8C8A;
-MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS :: 0x8C8B;
-INTERLEAVED_ATTRIBS            :: 0x8C8C;
-SEPARATE_ATTRIBS               :: 0x8C8D;
-TRANSFORM_FEEDBACK_BUFFER      :: 0x8C8E;
-TRANSFORM_FEEDBACK_BUFFER_BINDING :: 0x8C8F;
-RGBA32UI                       :: 0x8D70;
-RGB32UI                        :: 0x8D71;
-RGBA16UI                       :: 0x8D76;
-RGB16UI                        :: 0x8D77;
-RGBA8UI                        :: 0x8D7C;
-RGB8UI                         :: 0x8D7D;
-RGBA32I                        :: 0x8D82;
-RGB32I                         :: 0x8D83;
-RGBA16I                        :: 0x8D88;
-RGB16I                         :: 0x8D89;
-RGBA8I                         :: 0x8D8E;
-RGB8I                          :: 0x8D8F;
-RED_INTEGER                    :: 0x8D94;
-GREEN_INTEGER                  :: 0x8D95;
-BLUE_INTEGER                   :: 0x8D96;
-RGB_INTEGER                    :: 0x8D98;
-RGBA_INTEGER                   :: 0x8D99;
-BGR_INTEGER                    :: 0x8D9A;
-BGRA_INTEGER                   :: 0x8D9B;
-SAMPLER_1D_ARRAY               :: 0x8DC0;
-SAMPLER_2D_ARRAY               :: 0x8DC1;
-SAMPLER_1D_ARRAY_SHADOW        :: 0x8DC3;
-SAMPLER_2D_ARRAY_SHADOW        :: 0x8DC4;
-SAMPLER_CUBE_SHADOW            :: 0x8DC5;
-UNSIGNED_INT_VEC2              :: 0x8DC6;
-UNSIGNED_INT_VEC3              :: 0x8DC7;
-UNSIGNED_INT_VEC4              :: 0x8DC8;
-INT_SAMPLER_1D                 :: 0x8DC9;
-INT_SAMPLER_2D                 :: 0x8DCA;
-INT_SAMPLER_3D                 :: 0x8DCB;
-INT_SAMPLER_CUBE               :: 0x8DCC;
-INT_SAMPLER_1D_ARRAY           :: 0x8DCE;
-INT_SAMPLER_2D_ARRAY           :: 0x8DCF;
-UNSIGNED_INT_SAMPLER_1D        :: 0x8DD1;
-UNSIGNED_INT_SAMPLER_2D        :: 0x8DD2;
-UNSIGNED_INT_SAMPLER_3D        :: 0x8DD3;
-UNSIGNED_INT_SAMPLER_CUBE      :: 0x8DD4;
-UNSIGNED_INT_SAMPLER_1D_ARRAY  :: 0x8DD6;
-UNSIGNED_INT_SAMPLER_2D_ARRAY  :: 0x8DD7;
-QUERY_WAIT                     :: 0x8E13;
-QUERY_NO_WAIT                  :: 0x8E14;
-QUERY_BY_REGION_WAIT           :: 0x8E15;
-QUERY_BY_REGION_NO_WAIT        :: 0x8E16;
-BUFFER_ACCESS_FLAGS            :: 0x911F;
-BUFFER_MAP_LENGTH              :: 0x9120;
-BUFFER_MAP_OFFSET              :: 0x9121;
-DEPTH_COMPONENT32F             :: 0x8CAC;
-DEPTH32F_STENCIL8              :: 0x8CAD;
-FLOAT_32_UNSIGNED_INT_24_8_REV :: 0x8DAD;
-INVALID_FRAMEBUFFER_OPERATION  :: 0x0506;
-FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING :: 0x8210;
-FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE :: 0x8211;
-FRAMEBUFFER_ATTACHMENT_RED_SIZE :: 0x8212;
-FRAMEBUFFER_ATTACHMENT_GREEN_SIZE :: 0x8213;
-FRAMEBUFFER_ATTACHMENT_BLUE_SIZE :: 0x8214;
-FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE :: 0x8215;
-FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE :: 0x8216;
-FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE :: 0x8217;
-FRAMEBUFFER_DEFAULT            :: 0x8218;
-FRAMEBUFFER_UNDEFINED          :: 0x8219;
-DEPTH_STENCIL_ATTACHMENT       :: 0x821A;
-MAX_RENDERBUFFER_SIZE          :: 0x84E8;
-DEPTH_STENCIL                  :: 0x84F9;
-UNSIGNED_INT_24_8              :: 0x84FA;
-DEPTH24_STENCIL8               :: 0x88F0;
-TEXTURE_STENCIL_SIZE           :: 0x88F1;
-TEXTURE_RED_TYPE               :: 0x8C10;
-TEXTURE_GREEN_TYPE             :: 0x8C11;
-TEXTURE_BLUE_TYPE              :: 0x8C12;
-TEXTURE_ALPHA_TYPE             :: 0x8C13;
-TEXTURE_DEPTH_TYPE             :: 0x8C16;
-UNSIGNED_NORMALIZED            :: 0x8C17;
-FRAMEBUFFER_BINDING            :: 0x8CA6;
-DRAW_FRAMEBUFFER_BINDING       :: 0x8CA6;
-RENDERBUFFER_BINDING           :: 0x8CA7;
-READ_FRAMEBUFFER               :: 0x8CA8;
-DRAW_FRAMEBUFFER               :: 0x8CA9;
-READ_FRAMEBUFFER_BINDING       :: 0x8CAA;
-RENDERBUFFER_SAMPLES           :: 0x8CAB;
-FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE :: 0x8CD0;
-FRAMEBUFFER_ATTACHMENT_OBJECT_NAME :: 0x8CD1;
-FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL :: 0x8CD2;
-FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE :: 0x8CD3;
-FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER :: 0x8CD4;
-FRAMEBUFFER_COMPLETE           :: 0x8CD5;
-FRAMEBUFFER_INCOMPLETE_ATTACHMENT :: 0x8CD6;
-FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT :: 0x8CD7;
-FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER :: 0x8CDB;
-FRAMEBUFFER_INCOMPLETE_READ_BUFFER :: 0x8CDC;
-FRAMEBUFFER_UNSUPPORTED        :: 0x8CDD;
-MAX_COLOR_ATTACHMENTS          :: 0x8CDF;
-COLOR_ATTACHMENT0              :: 0x8CE0;
-COLOR_ATTACHMENT1              :: 0x8CE1;
-COLOR_ATTACHMENT2              :: 0x8CE2;
-COLOR_ATTACHMENT3              :: 0x8CE3;
-COLOR_ATTACHMENT4              :: 0x8CE4;
-COLOR_ATTACHMENT5              :: 0x8CE5;
-COLOR_ATTACHMENT6              :: 0x8CE6;
-COLOR_ATTACHMENT7              :: 0x8CE7;
-COLOR_ATTACHMENT8              :: 0x8CE8;
-COLOR_ATTACHMENT9              :: 0x8CE9;
-COLOR_ATTACHMENT10             :: 0x8CEA;
-COLOR_ATTACHMENT11             :: 0x8CEB;
-COLOR_ATTACHMENT12             :: 0x8CEC;
-COLOR_ATTACHMENT13             :: 0x8CED;
-COLOR_ATTACHMENT14             :: 0x8CEE;
-COLOR_ATTACHMENT15             :: 0x8CEF;
-COLOR_ATTACHMENT16             :: 0x8CF0;
-COLOR_ATTACHMENT17             :: 0x8CF1;
-COLOR_ATTACHMENT18             :: 0x8CF2;
-COLOR_ATTACHMENT19             :: 0x8CF3;
-COLOR_ATTACHMENT20             :: 0x8CF4;
-COLOR_ATTACHMENT21             :: 0x8CF5;
-COLOR_ATTACHMENT22             :: 0x8CF6;
-COLOR_ATTACHMENT23             :: 0x8CF7;
-COLOR_ATTACHMENT24             :: 0x8CF8;
-COLOR_ATTACHMENT25             :: 0x8CF9;
-COLOR_ATTACHMENT26             :: 0x8CFA;
-COLOR_ATTACHMENT27             :: 0x8CFB;
-COLOR_ATTACHMENT28             :: 0x8CFC;
-COLOR_ATTACHMENT29             :: 0x8CFD;
-COLOR_ATTACHMENT30             :: 0x8CFE;
-COLOR_ATTACHMENT31             :: 0x8CFF;
-DEPTH_ATTACHMENT               :: 0x8D00;
-STENCIL_ATTACHMENT             :: 0x8D20;
-FRAMEBUFFER                    :: 0x8D40;
-RENDERBUFFER                   :: 0x8D41;
-RENDERBUFFER_WIDTH             :: 0x8D42;
-RENDERBUFFER_HEIGHT            :: 0x8D43;
-RENDERBUFFER_INTERNAL_FORMAT   :: 0x8D44;
-STENCIL_INDEX1                 :: 0x8D46;
-STENCIL_INDEX4                 :: 0x8D47;
-STENCIL_INDEX8                 :: 0x8D48;
-STENCIL_INDEX16                :: 0x8D49;
-RENDERBUFFER_RED_SIZE          :: 0x8D50;
-RENDERBUFFER_GREEN_SIZE        :: 0x8D51;
-RENDERBUFFER_BLUE_SIZE         :: 0x8D52;
-RENDERBUFFER_ALPHA_SIZE        :: 0x8D53;
-RENDERBUFFER_DEPTH_SIZE        :: 0x8D54;
-RENDERBUFFER_STENCIL_SIZE      :: 0x8D55;
-FRAMEBUFFER_INCOMPLETE_MULTISAMPLE :: 0x8D56;
-MAX_SAMPLES                    :: 0x8D57;
-FRAMEBUFFER_SRGB               :: 0x8DB9;
-HALF_FLOAT                     :: 0x140B;
-MAP_READ_BIT                   :: 0x0001;
-MAP_WRITE_BIT                  :: 0x0002;
-MAP_INVALIDATE_RANGE_BIT       :: 0x0004;
-MAP_INVALIDATE_BUFFER_BIT      :: 0x0008;
-MAP_FLUSH_EXPLICIT_BIT         :: 0x0010;
-MAP_UNSYNCHRONIZED_BIT         :: 0x0020;
-COMPRESSED_RED_RGTC1           :: 0x8DBB;
-COMPRESSED_SIGNED_RED_RGTC1    :: 0x8DBC;
-COMPRESSED_RG_RGTC2            :: 0x8DBD;
-COMPRESSED_SIGNED_RG_RGTC2     :: 0x8DBE;
-RG                             :: 0x8227;
-RG_INTEGER                     :: 0x8228;
-R8                             :: 0x8229;
-R16                            :: 0x822A;
-RG8                            :: 0x822B;
-RG16                           :: 0x822C;
-R16F                           :: 0x822D;
-R32F                           :: 0x822E;
-RG16F                          :: 0x822F;
-RG32F                          :: 0x8230;
-R8I                            :: 0x8231;
-R8UI                           :: 0x8232;
-R16I                           :: 0x8233;
-R16UI                          :: 0x8234;
-R32I                           :: 0x8235;
-R32UI                          :: 0x8236;
-RG8I                           :: 0x8237;
-RG8UI                          :: 0x8238;
-RG16I                          :: 0x8239;
-RG16UI                         :: 0x823A;
-RG32I                          :: 0x823B;
-RG32UI                         :: 0x823C;
-VERTEX_ARRAY_BINDING           :: 0x85B5;
+COMPARE_REF_TO_TEXTURE         :: 0x884E
+CLIP_DISTANCE0                 :: 0x3000
+CLIP_DISTANCE1                 :: 0x3001
+CLIP_DISTANCE2                 :: 0x3002
+CLIP_DISTANCE3                 :: 0x3003
+CLIP_DISTANCE4                 :: 0x3004
+CLIP_DISTANCE5                 :: 0x3005
+CLIP_DISTANCE6                 :: 0x3006
+CLIP_DISTANCE7                 :: 0x3007
+MAX_CLIP_DISTANCES             :: 0x0D32
+MAJOR_VERSION                  :: 0x821B
+MINOR_VERSION                  :: 0x821C
+NUM_EXTENSIONS                 :: 0x821D
+CONTEXT_FLAGS                  :: 0x821E
+COMPRESSED_RED                 :: 0x8225
+COMPRESSED_RG                  :: 0x8226
+CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT :: 0x00000001
+RGBA32F                        :: 0x8814
+RGB32F                         :: 0x8815
+RGBA16F                        :: 0x881A
+RGB16F                         :: 0x881B
+VERTEX_ATTRIB_ARRAY_INTEGER    :: 0x88FD
+MAX_ARRAY_TEXTURE_LAYERS       :: 0x88FF
+MIN_PROGRAM_TEXEL_OFFSET       :: 0x8904
+MAX_PROGRAM_TEXEL_OFFSET       :: 0x8905
+CLAMP_READ_COLOR               :: 0x891C
+FIXED_ONLY                     :: 0x891D
+MAX_VARYING_COMPONENTS         :: 0x8B4B
+TEXTURE_1D_ARRAY               :: 0x8C18
+PROXY_TEXTURE_1D_ARRAY         :: 0x8C19
+TEXTURE_2D_ARRAY               :: 0x8C1A
+PROXY_TEXTURE_2D_ARRAY         :: 0x8C1B
+TEXTURE_BINDING_1D_ARRAY       :: 0x8C1C
+TEXTURE_BINDING_2D_ARRAY       :: 0x8C1D
+R11F_G11F_B10F                 :: 0x8C3A
+UNSIGNED_INT_10F_11F_11F_REV   :: 0x8C3B
+RGB9_E5                        :: 0x8C3D
+UNSIGNED_INT_5_9_9_9_REV       :: 0x8C3E
+TEXTURE_SHARED_SIZE            :: 0x8C3F
+TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH :: 0x8C76
+TRANSFORM_FEEDBACK_BUFFER_MODE :: 0x8C7F
+MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS :: 0x8C80
+TRANSFORM_FEEDBACK_VARYINGS    :: 0x8C83
+TRANSFORM_FEEDBACK_BUFFER_START :: 0x8C84
+TRANSFORM_FEEDBACK_BUFFER_SIZE :: 0x8C85
+PRIMITIVES_GENERATED           :: 0x8C87
+TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN :: 0x8C88
+RASTERIZER_DISCARD             :: 0x8C89
+MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS :: 0x8C8A
+MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS :: 0x8C8B
+INTERLEAVED_ATTRIBS            :: 0x8C8C
+SEPARATE_ATTRIBS               :: 0x8C8D
+TRANSFORM_FEEDBACK_BUFFER      :: 0x8C8E
+TRANSFORM_FEEDBACK_BUFFER_BINDING :: 0x8C8F
+RGBA32UI                       :: 0x8D70
+RGB32UI                        :: 0x8D71
+RGBA16UI                       :: 0x8D76
+RGB16UI                        :: 0x8D77
+RGBA8UI                        :: 0x8D7C
+RGB8UI                         :: 0x8D7D
+RGBA32I                        :: 0x8D82
+RGB32I                         :: 0x8D83
+RGBA16I                        :: 0x8D88
+RGB16I                         :: 0x8D89
+RGBA8I                         :: 0x8D8E
+RGB8I                          :: 0x8D8F
+RED_INTEGER                    :: 0x8D94
+GREEN_INTEGER                  :: 0x8D95
+BLUE_INTEGER                   :: 0x8D96
+RGB_INTEGER                    :: 0x8D98
+RGBA_INTEGER                   :: 0x8D99
+BGR_INTEGER                    :: 0x8D9A
+BGRA_INTEGER                   :: 0x8D9B
+SAMPLER_1D_ARRAY               :: 0x8DC0
+SAMPLER_2D_ARRAY               :: 0x8DC1
+SAMPLER_1D_ARRAY_SHADOW        :: 0x8DC3
+SAMPLER_2D_ARRAY_SHADOW        :: 0x8DC4
+SAMPLER_CUBE_SHADOW            :: 0x8DC5
+UNSIGNED_INT_VEC2              :: 0x8DC6
+UNSIGNED_INT_VEC3              :: 0x8DC7
+UNSIGNED_INT_VEC4              :: 0x8DC8
+INT_SAMPLER_1D                 :: 0x8DC9
+INT_SAMPLER_2D                 :: 0x8DCA
+INT_SAMPLER_3D                 :: 0x8DCB
+INT_SAMPLER_CUBE               :: 0x8DCC
+INT_SAMPLER_1D_ARRAY           :: 0x8DCE
+INT_SAMPLER_2D_ARRAY           :: 0x8DCF
+UNSIGNED_INT_SAMPLER_1D        :: 0x8DD1
+UNSIGNED_INT_SAMPLER_2D        :: 0x8DD2
+UNSIGNED_INT_SAMPLER_3D        :: 0x8DD3
+UNSIGNED_INT_SAMPLER_CUBE      :: 0x8DD4
+UNSIGNED_INT_SAMPLER_1D_ARRAY  :: 0x8DD6
+UNSIGNED_INT_SAMPLER_2D_ARRAY  :: 0x8DD7
+QUERY_WAIT                     :: 0x8E13
+QUERY_NO_WAIT                  :: 0x8E14
+QUERY_BY_REGION_WAIT           :: 0x8E15
+QUERY_BY_REGION_NO_WAIT        :: 0x8E16
+BUFFER_ACCESS_FLAGS            :: 0x911F
+BUFFER_MAP_LENGTH              :: 0x9120
+BUFFER_MAP_OFFSET              :: 0x9121
+DEPTH_COMPONENT32F             :: 0x8CAC
+DEPTH32F_STENCIL8              :: 0x8CAD
+FLOAT_32_UNSIGNED_INT_24_8_REV :: 0x8DAD
+INVALID_FRAMEBUFFER_OPERATION  :: 0x0506
+FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING :: 0x8210
+FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE :: 0x8211
+FRAMEBUFFER_ATTACHMENT_RED_SIZE :: 0x8212
+FRAMEBUFFER_ATTACHMENT_GREEN_SIZE :: 0x8213
+FRAMEBUFFER_ATTACHMENT_BLUE_SIZE :: 0x8214
+FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE :: 0x8215
+FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE :: 0x8216
+FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE :: 0x8217
+FRAMEBUFFER_DEFAULT            :: 0x8218
+FRAMEBUFFER_UNDEFINED          :: 0x8219
+DEPTH_STENCIL_ATTACHMENT       :: 0x821A
+MAX_RENDERBUFFER_SIZE          :: 0x84E8
+DEPTH_STENCIL                  :: 0x84F9
+UNSIGNED_INT_24_8              :: 0x84FA
+DEPTH24_STENCIL8               :: 0x88F0
+TEXTURE_STENCIL_SIZE           :: 0x88F1
+TEXTURE_RED_TYPE               :: 0x8C10
+TEXTURE_GREEN_TYPE             :: 0x8C11
+TEXTURE_BLUE_TYPE              :: 0x8C12
+TEXTURE_ALPHA_TYPE             :: 0x8C13
+TEXTURE_DEPTH_TYPE             :: 0x8C16
+UNSIGNED_NORMALIZED            :: 0x8C17
+FRAMEBUFFER_BINDING            :: 0x8CA6
+DRAW_FRAMEBUFFER_BINDING       :: 0x8CA6
+RENDERBUFFER_BINDING           :: 0x8CA7
+READ_FRAMEBUFFER               :: 0x8CA8
+DRAW_FRAMEBUFFER               :: 0x8CA9
+READ_FRAMEBUFFER_BINDING       :: 0x8CAA
+RENDERBUFFER_SAMPLES           :: 0x8CAB
+FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE :: 0x8CD0
+FRAMEBUFFER_ATTACHMENT_OBJECT_NAME :: 0x8CD1
+FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL :: 0x8CD2
+FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE :: 0x8CD3
+FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER :: 0x8CD4
+FRAMEBUFFER_COMPLETE           :: 0x8CD5
+FRAMEBUFFER_INCOMPLETE_ATTACHMENT :: 0x8CD6
+FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT :: 0x8CD7
+FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER :: 0x8CDB
+FRAMEBUFFER_INCOMPLETE_READ_BUFFER :: 0x8CDC
+FRAMEBUFFER_UNSUPPORTED        :: 0x8CDD
+MAX_COLOR_ATTACHMENTS          :: 0x8CDF
+COLOR_ATTACHMENT0              :: 0x8CE0
+COLOR_ATTACHMENT1              :: 0x8CE1
+COLOR_ATTACHMENT2              :: 0x8CE2
+COLOR_ATTACHMENT3              :: 0x8CE3
+COLOR_ATTACHMENT4              :: 0x8CE4
+COLOR_ATTACHMENT5              :: 0x8CE5
+COLOR_ATTACHMENT6              :: 0x8CE6
+COLOR_ATTACHMENT7              :: 0x8CE7
+COLOR_ATTACHMENT8              :: 0x8CE8
+COLOR_ATTACHMENT9              :: 0x8CE9
+COLOR_ATTACHMENT10             :: 0x8CEA
+COLOR_ATTACHMENT11             :: 0x8CEB
+COLOR_ATTACHMENT12             :: 0x8CEC
+COLOR_ATTACHMENT13             :: 0x8CED
+COLOR_ATTACHMENT14             :: 0x8CEE
+COLOR_ATTACHMENT15             :: 0x8CEF
+COLOR_ATTACHMENT16             :: 0x8CF0
+COLOR_ATTACHMENT17             :: 0x8CF1
+COLOR_ATTACHMENT18             :: 0x8CF2
+COLOR_ATTACHMENT19             :: 0x8CF3
+COLOR_ATTACHMENT20             :: 0x8CF4
+COLOR_ATTACHMENT21             :: 0x8CF5
+COLOR_ATTACHMENT22             :: 0x8CF6
+COLOR_ATTACHMENT23             :: 0x8CF7
+COLOR_ATTACHMENT24             :: 0x8CF8
+COLOR_ATTACHMENT25             :: 0x8CF9
+COLOR_ATTACHMENT26             :: 0x8CFA
+COLOR_ATTACHMENT27             :: 0x8CFB
+COLOR_ATTACHMENT28             :: 0x8CFC
+COLOR_ATTACHMENT29             :: 0x8CFD
+COLOR_ATTACHMENT30             :: 0x8CFE
+COLOR_ATTACHMENT31             :: 0x8CFF
+DEPTH_ATTACHMENT               :: 0x8D00
+STENCIL_ATTACHMENT             :: 0x8D20
+FRAMEBUFFER                    :: 0x8D40
+RENDERBUFFER                   :: 0x8D41
+RENDERBUFFER_WIDTH             :: 0x8D42
+RENDERBUFFER_HEIGHT            :: 0x8D43
+RENDERBUFFER_INTERNAL_FORMAT   :: 0x8D44
+STENCIL_INDEX1                 :: 0x8D46
+STENCIL_INDEX4                 :: 0x8D47
+STENCIL_INDEX8                 :: 0x8D48
+STENCIL_INDEX16                :: 0x8D49
+RENDERBUFFER_RED_SIZE          :: 0x8D50
+RENDERBUFFER_GREEN_SIZE        :: 0x8D51
+RENDERBUFFER_BLUE_SIZE         :: 0x8D52
+RENDERBUFFER_ALPHA_SIZE        :: 0x8D53
+RENDERBUFFER_DEPTH_SIZE        :: 0x8D54
+RENDERBUFFER_STENCIL_SIZE      :: 0x8D55
+FRAMEBUFFER_INCOMPLETE_MULTISAMPLE :: 0x8D56
+MAX_SAMPLES                    :: 0x8D57
+FRAMEBUFFER_SRGB               :: 0x8DB9
+HALF_FLOAT                     :: 0x140B
+MAP_READ_BIT                   :: 0x0001
+MAP_WRITE_BIT                  :: 0x0002
+MAP_INVALIDATE_RANGE_BIT       :: 0x0004
+MAP_INVALIDATE_BUFFER_BIT      :: 0x0008
+MAP_FLUSH_EXPLICIT_BIT         :: 0x0010
+MAP_UNSYNCHRONIZED_BIT         :: 0x0020
+COMPRESSED_RED_RGTC1           :: 0x8DBB
+COMPRESSED_SIGNED_RED_RGTC1    :: 0x8DBC
+COMPRESSED_RG_RGTC2            :: 0x8DBD
+COMPRESSED_SIGNED_RG_RGTC2     :: 0x8DBE
+RG                             :: 0x8227
+RG_INTEGER                     :: 0x8228
+R8                             :: 0x8229
+R16                            :: 0x822A
+RG8                            :: 0x822B
+RG16                           :: 0x822C
+R16F                           :: 0x822D
+R32F                           :: 0x822E
+RG16F                          :: 0x822F
+RG32F                          :: 0x8230
+R8I                            :: 0x8231
+R8UI                           :: 0x8232
+R16I                           :: 0x8233
+R16UI                          :: 0x8234
+R32I                           :: 0x8235
+R32UI                          :: 0x8236
+RG8I                           :: 0x8237
+RG8UI                          :: 0x8238
+RG16I                          :: 0x8239
+RG16UI                         :: 0x823A
+RG32I                          :: 0x823B
+RG32UI                         :: 0x823C
+VERTEX_ARRAY_BINDING           :: 0x85B5
 
-SAMPLER_2D_RECT                :: 0x8B63;
-SAMPLER_2D_RECT_SHADOW         :: 0x8B64;
-SAMPLER_BUFFER                 :: 0x8DC2;
-INT_SAMPLER_2D_RECT            :: 0x8DCD;
-INT_SAMPLER_BUFFER             :: 0x8DD0;
-UNSIGNED_INT_SAMPLER_2D_RECT   :: 0x8DD5;
-UNSIGNED_INT_SAMPLER_BUFFER    :: 0x8DD8;
-TEXTURE_BUFFER                 :: 0x8C2A;
-MAX_TEXTURE_BUFFER_SIZE        :: 0x8C2B;
-TEXTURE_BINDING_BUFFER         :: 0x8C2C;
-TEXTURE_BUFFER_DATA_STORE_BINDING :: 0x8C2D;
-TEXTURE_RECTANGLE              :: 0x84F5;
-TEXTURE_BINDING_RECTANGLE      :: 0x84F6;
-PROXY_TEXTURE_RECTANGLE        :: 0x84F7;
-MAX_RECTANGLE_TEXTURE_SIZE     :: 0x84F8;
-R8_SNORM                       :: 0x8F94;
-RG8_SNORM                      :: 0x8F95;
-RGB8_SNORM                     :: 0x8F96;
-RGBA8_SNORM                    :: 0x8F97;
-R16_SNORM                      :: 0x8F98;
-RG16_SNORM                     :: 0x8F99;
-RGB16_SNORM                    :: 0x8F9A;
-RGBA16_SNORM                   :: 0x8F9B;
-SIGNED_NORMALIZED              :: 0x8F9C;
-PRIMITIVE_RESTART              :: 0x8F9D;
-PRIMITIVE_RESTART_INDEX        :: 0x8F9E;
-COPY_READ_BUFFER               :: 0x8F36;
-COPY_WRITE_BUFFER              :: 0x8F37;
-UNIFORM_BUFFER                 :: 0x8A11;
-UNIFORM_BUFFER_BINDING         :: 0x8A28;
-UNIFORM_BUFFER_START           :: 0x8A29;
-UNIFORM_BUFFER_SIZE            :: 0x8A2A;
-MAX_VERTEX_UNIFORM_BLOCKS      :: 0x8A2B;
-MAX_GEOMETRY_UNIFORM_BLOCKS    :: 0x8A2C;
-MAX_FRAGMENT_UNIFORM_BLOCKS    :: 0x8A2D;
-MAX_COMBINED_UNIFORM_BLOCKS    :: 0x8A2E;
-MAX_UNIFORM_BUFFER_BINDINGS    :: 0x8A2F;
-MAX_UNIFORM_BLOCK_SIZE         :: 0x8A30;
-MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS :: 0x8A31;
-MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS :: 0x8A32;
-MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS :: 0x8A33;
-UNIFORM_BUFFER_OFFSET_ALIGNMENT :: 0x8A34;
-ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH :: 0x8A35;
-ACTIVE_UNIFORM_BLOCKS          :: 0x8A36;
-UNIFORM_TYPE                   :: 0x8A37;
-UNIFORM_SIZE                   :: 0x8A38;
-UNIFORM_NAME_LENGTH            :: 0x8A39;
-UNIFORM_BLOCK_INDEX            :: 0x8A3A;
-UNIFORM_OFFSET                 :: 0x8A3B;
-UNIFORM_ARRAY_STRIDE           :: 0x8A3C;
-UNIFORM_MATRIX_STRIDE          :: 0x8A3D;
-UNIFORM_IS_ROW_MAJOR           :: 0x8A3E;
-UNIFORM_BLOCK_BINDING          :: 0x8A3F;
-UNIFORM_BLOCK_DATA_SIZE        :: 0x8A40;
-UNIFORM_BLOCK_NAME_LENGTH      :: 0x8A41;
-UNIFORM_BLOCK_ACTIVE_UNIFORMS  :: 0x8A42;
-UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES :: 0x8A43;
-UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER :: 0x8A44;
-UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER :: 0x8A45;
-UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER :: 0x8A46;
-INVALID_INDEX                  :: 0xFFFFFFFF;
+SAMPLER_2D_RECT                :: 0x8B63
+SAMPLER_2D_RECT_SHADOW         :: 0x8B64
+SAMPLER_BUFFER                 :: 0x8DC2
+INT_SAMPLER_2D_RECT            :: 0x8DCD
+INT_SAMPLER_BUFFER             :: 0x8DD0
+UNSIGNED_INT_SAMPLER_2D_RECT   :: 0x8DD5
+UNSIGNED_INT_SAMPLER_BUFFER    :: 0x8DD8
+TEXTURE_BUFFER                 :: 0x8C2A
+MAX_TEXTURE_BUFFER_SIZE        :: 0x8C2B
+TEXTURE_BINDING_BUFFER         :: 0x8C2C
+TEXTURE_BUFFER_DATA_STORE_BINDING :: 0x8C2D
+TEXTURE_RECTANGLE              :: 0x84F5
+TEXTURE_BINDING_RECTANGLE      :: 0x84F6
+PROXY_TEXTURE_RECTANGLE        :: 0x84F7
+MAX_RECTANGLE_TEXTURE_SIZE     :: 0x84F8
+R8_SNORM                       :: 0x8F94
+RG8_SNORM                      :: 0x8F95
+RGB8_SNORM                     :: 0x8F96
+RGBA8_SNORM                    :: 0x8F97
+R16_SNORM                      :: 0x8F98
+RG16_SNORM                     :: 0x8F99
+RGB16_SNORM                    :: 0x8F9A
+RGBA16_SNORM                   :: 0x8F9B
+SIGNED_NORMALIZED              :: 0x8F9C
+PRIMITIVE_RESTART              :: 0x8F9D
+PRIMITIVE_RESTART_INDEX        :: 0x8F9E
+COPY_READ_BUFFER               :: 0x8F36
+COPY_WRITE_BUFFER              :: 0x8F37
+UNIFORM_BUFFER                 :: 0x8A11
+UNIFORM_BUFFER_BINDING         :: 0x8A28
+UNIFORM_BUFFER_START           :: 0x8A29
+UNIFORM_BUFFER_SIZE            :: 0x8A2A
+MAX_VERTEX_UNIFORM_BLOCKS      :: 0x8A2B
+MAX_GEOMETRY_UNIFORM_BLOCKS    :: 0x8A2C
+MAX_FRAGMENT_UNIFORM_BLOCKS    :: 0x8A2D
+MAX_COMBINED_UNIFORM_BLOCKS    :: 0x8A2E
+MAX_UNIFORM_BUFFER_BINDINGS    :: 0x8A2F
+MAX_UNIFORM_BLOCK_SIZE         :: 0x8A30
+MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS :: 0x8A31
+MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS :: 0x8A32
+MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS :: 0x8A33
+UNIFORM_BUFFER_OFFSET_ALIGNMENT :: 0x8A34
+ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH :: 0x8A35
+ACTIVE_UNIFORM_BLOCKS          :: 0x8A36
+UNIFORM_TYPE                   :: 0x8A37
+UNIFORM_SIZE                   :: 0x8A38
+UNIFORM_NAME_LENGTH            :: 0x8A39
+UNIFORM_BLOCK_INDEX            :: 0x8A3A
+UNIFORM_OFFSET                 :: 0x8A3B
+UNIFORM_ARRAY_STRIDE           :: 0x8A3C
+UNIFORM_MATRIX_STRIDE          :: 0x8A3D
+UNIFORM_IS_ROW_MAJOR           :: 0x8A3E
+UNIFORM_BLOCK_BINDING          :: 0x8A3F
+UNIFORM_BLOCK_DATA_SIZE        :: 0x8A40
+UNIFORM_BLOCK_NAME_LENGTH      :: 0x8A41
+UNIFORM_BLOCK_ACTIVE_UNIFORMS  :: 0x8A42
+UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES :: 0x8A43
+UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER :: 0x8A44
+UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER :: 0x8A45
+UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER :: 0x8A46
+INVALID_INDEX                  :: 0xFFFFFFFF
 
-CONTEXT_CORE_PROFILE_BIT       :: 0x00000001;
-CONTEXT_COMPATIBILITY_PROFILE_BIT :: 0x00000002;
-LINES_ADJACENCY                :: 0x000A;
-LINE_STRIP_ADJACENCY           :: 0x000B;
-TRIANGLES_ADJACENCY            :: 0x000C;
-TRIANGLE_STRIP_ADJACENCY       :: 0x000D;
-PROGRAM_POINT_SIZE             :: 0x8642;
-MAX_GEOMETRY_TEXTURE_IMAGE_UNITS :: 0x8C29;
-FRAMEBUFFER_ATTACHMENT_LAYERED :: 0x8DA7;
-FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS :: 0x8DA8;
-GEOMETRY_SHADER                :: 0x8DD9;
-GEOMETRY_VERTICES_OUT          :: 0x8916;
-GEOMETRY_INPUT_TYPE            :: 0x8917;
-GEOMETRY_OUTPUT_TYPE           :: 0x8918;
-MAX_GEOMETRY_UNIFORM_COMPONENTS :: 0x8DDF;
-MAX_GEOMETRY_OUTPUT_VERTICES   :: 0x8DE0;
-MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS :: 0x8DE1;
-MAX_VERTEX_OUTPUT_COMPONENTS   :: 0x9122;
-MAX_GEOMETRY_INPUT_COMPONENTS  :: 0x9123;
-MAX_GEOMETRY_OUTPUT_COMPONENTS :: 0x9124;
-MAX_FRAGMENT_INPUT_COMPONENTS  :: 0x9125;
-CONTEXT_PROFILE_MASK           :: 0x9126;
-DEPTH_CLAMP                    :: 0x864F;
-QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION :: 0x8E4C;
-FIRST_VERTEX_CONVENTION        :: 0x8E4D;
-LAST_VERTEX_CONVENTION         :: 0x8E4E;
-PROVOKING_VERTEX               :: 0x8E4F;
-TEXTURE_CUBE_MAP_SEAMLESS      :: 0x884F;
-MAX_SERVER_WAIT_TIMEOUT        :: 0x9111;
-OBJECT_TYPE                    :: 0x9112;
-SYNC_CONDITION                 :: 0x9113;
-SYNC_STATUS                    :: 0x9114;
-SYNC_FLAGS                     :: 0x9115;
-SYNC_FENCE                     :: 0x9116;
-SYNC_GPU_COMMANDS_COMPLETE     :: 0x9117;
-UNSIGNALED                     :: 0x9118;
-SIGNALED                       :: 0x9119;
-ALREADY_SIGNALED               :: 0x911A;
-TIMEOUT_EXPIRED                :: 0x911B;
-CONDITION_SATISFIED            :: 0x911C;
-WAIT_FAILED                    :: 0x911D;
-TIMEOUT_IGNORED                :: 0xFFFFFFFFFFFFFFFF;
-SYNC_FLUSH_COMMANDS_BIT        :: 0x00000001;
-SAMPLE_POSITION                :: 0x8E50;
-SAMPLE_MASK                    :: 0x8E51;
-SAMPLE_MASK_VALUE              :: 0x8E52;
-MAX_SAMPLE_MASK_WORDS          :: 0x8E59;
-TEXTURE_2D_MULTISAMPLE         :: 0x9100;
-PROXY_TEXTURE_2D_MULTISAMPLE   :: 0x9101;
-TEXTURE_2D_MULTISAMPLE_ARRAY   :: 0x9102;
-PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY :: 0x9103;
-TEXTURE_BINDING_2D_MULTISAMPLE :: 0x9104;
-TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY :: 0x9105;
-TEXTURE_SAMPLES                :: 0x9106;
-TEXTURE_FIXED_SAMPLE_LOCATIONS :: 0x9107;
-SAMPLER_2D_MULTISAMPLE         :: 0x9108;
-INT_SAMPLER_2D_MULTISAMPLE     :: 0x9109;
-UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE :: 0x910A;
-SAMPLER_2D_MULTISAMPLE_ARRAY   :: 0x910B;
-INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: 0x910C;
-UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: 0x910D;
-MAX_COLOR_TEXTURE_SAMPLES      :: 0x910E;
-MAX_DEPTH_TEXTURE_SAMPLES      :: 0x910F;
-MAX_INTEGER_SAMPLES            :: 0x9110;
+CONTEXT_CORE_PROFILE_BIT       :: 0x00000001
+CONTEXT_COMPATIBILITY_PROFILE_BIT :: 0x00000002
+LINES_ADJACENCY                :: 0x000A
+LINE_STRIP_ADJACENCY           :: 0x000B
+TRIANGLES_ADJACENCY            :: 0x000C
+TRIANGLE_STRIP_ADJACENCY       :: 0x000D
+PROGRAM_POINT_SIZE             :: 0x8642
+MAX_GEOMETRY_TEXTURE_IMAGE_UNITS :: 0x8C29
+FRAMEBUFFER_ATTACHMENT_LAYERED :: 0x8DA7
+FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS :: 0x8DA8
+GEOMETRY_SHADER                :: 0x8DD9
+GEOMETRY_VERTICES_OUT          :: 0x8916
+GEOMETRY_INPUT_TYPE            :: 0x8917
+GEOMETRY_OUTPUT_TYPE           :: 0x8918
+MAX_GEOMETRY_UNIFORM_COMPONENTS :: 0x8DDF
+MAX_GEOMETRY_OUTPUT_VERTICES   :: 0x8DE0
+MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS :: 0x8DE1
+MAX_VERTEX_OUTPUT_COMPONENTS   :: 0x9122
+MAX_GEOMETRY_INPUT_COMPONENTS  :: 0x9123
+MAX_GEOMETRY_OUTPUT_COMPONENTS :: 0x9124
+MAX_FRAGMENT_INPUT_COMPONENTS  :: 0x9125
+CONTEXT_PROFILE_MASK           :: 0x9126
+DEPTH_CLAMP                    :: 0x864F
+QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION :: 0x8E4C
+FIRST_VERTEX_CONVENTION        :: 0x8E4D
+LAST_VERTEX_CONVENTION         :: 0x8E4E
+PROVOKING_VERTEX               :: 0x8E4F
+TEXTURE_CUBE_MAP_SEAMLESS      :: 0x884F
+MAX_SERVER_WAIT_TIMEOUT        :: 0x9111
+OBJECT_TYPE                    :: 0x9112
+SYNC_CONDITION                 :: 0x9113
+SYNC_STATUS                    :: 0x9114
+SYNC_FLAGS                     :: 0x9115
+SYNC_FENCE                     :: 0x9116
+SYNC_GPU_COMMANDS_COMPLETE     :: 0x9117
+UNSIGNALED                     :: 0x9118
+SIGNALED                       :: 0x9119
+ALREADY_SIGNALED               :: 0x911A
+TIMEOUT_EXPIRED                :: 0x911B
+CONDITION_SATISFIED            :: 0x911C
+WAIT_FAILED                    :: 0x911D
+TIMEOUT_IGNORED                :: 0xFFFFFFFFFFFFFFFF
+SYNC_FLUSH_COMMANDS_BIT        :: 0x00000001
+SAMPLE_POSITION                :: 0x8E50
+SAMPLE_MASK                    :: 0x8E51
+SAMPLE_MASK_VALUE              :: 0x8E52
+MAX_SAMPLE_MASK_WORDS          :: 0x8E59
+TEXTURE_2D_MULTISAMPLE         :: 0x9100
+PROXY_TEXTURE_2D_MULTISAMPLE   :: 0x9101
+TEXTURE_2D_MULTISAMPLE_ARRAY   :: 0x9102
+PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY :: 0x9103
+TEXTURE_BINDING_2D_MULTISAMPLE :: 0x9104
+TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY :: 0x9105
+TEXTURE_SAMPLES                :: 0x9106
+TEXTURE_FIXED_SAMPLE_LOCATIONS :: 0x9107
+SAMPLER_2D_MULTISAMPLE         :: 0x9108
+INT_SAMPLER_2D_MULTISAMPLE     :: 0x9109
+UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE :: 0x910A
+SAMPLER_2D_MULTISAMPLE_ARRAY   :: 0x910B
+INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: 0x910C
+UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: 0x910D
+MAX_COLOR_TEXTURE_SAMPLES      :: 0x910E
+MAX_DEPTH_TEXTURE_SAMPLES      :: 0x910F
+MAX_INTEGER_SAMPLES            :: 0x9110
 
-VERTEX_ATTRIB_ARRAY_DIVISOR    :: 0x88FE;
-SRC1_COLOR                     :: 0x88F9;
-ONE_MINUS_SRC1_COLOR           :: 0x88FA;
-ONE_MINUS_SRC1_ALPHA           :: 0x88FB;
-MAX_DUAL_SOURCE_DRAW_BUFFERS   :: 0x88FC;
-ANY_SAMPLES_PASSED             :: 0x8C2F;
-SAMPLER_BINDING                :: 0x8919;
-RGB10_A2UI                     :: 0x906F;
-TEXTURE_SWIZZLE_R              :: 0x8E42;
-TEXTURE_SWIZZLE_G              :: 0x8E43;
-TEXTURE_SWIZZLE_B              :: 0x8E44;
-TEXTURE_SWIZZLE_A              :: 0x8E45;
-TEXTURE_SWIZZLE_RGBA           :: 0x8E46;
-TIME_ELAPSED                   :: 0x88BF;
-TIMESTAMP                      :: 0x8E28;
-INT_2_10_10_10_REV             :: 0x8D9F;
+VERTEX_ATTRIB_ARRAY_DIVISOR    :: 0x88FE
+SRC1_COLOR                     :: 0x88F9
+ONE_MINUS_SRC1_COLOR           :: 0x88FA
+ONE_MINUS_SRC1_ALPHA           :: 0x88FB
+MAX_DUAL_SOURCE_DRAW_BUFFERS   :: 0x88FC
+ANY_SAMPLES_PASSED             :: 0x8C2F
+SAMPLER_BINDING                :: 0x8919
+RGB10_A2UI                     :: 0x906F
+TEXTURE_SWIZZLE_R              :: 0x8E42
+TEXTURE_SWIZZLE_G              :: 0x8E43
+TEXTURE_SWIZZLE_B              :: 0x8E44
+TEXTURE_SWIZZLE_A              :: 0x8E45
+TEXTURE_SWIZZLE_RGBA           :: 0x8E46
+TIME_ELAPSED                   :: 0x88BF
+TIMESTAMP                      :: 0x8E28
+INT_2_10_10_10_REV             :: 0x8D9F
 
-SAMPLE_SHADING                 :: 0x8C36;
-MIN_SAMPLE_SHADING_VALUE       :: 0x8C37;
-MIN_PROGRAM_TEXTURE_GATHER_OFFSET :: 0x8E5E;
-MAX_PROGRAM_TEXTURE_GATHER_OFFSET :: 0x8E5F;
-TEXTURE_CUBE_MAP_ARRAY         :: 0x9009;
-TEXTURE_BINDING_CUBE_MAP_ARRAY :: 0x900A;
-PROXY_TEXTURE_CUBE_MAP_ARRAY   :: 0x900B;
-SAMPLER_CUBE_MAP_ARRAY         :: 0x900C;
-SAMPLER_CUBE_MAP_ARRAY_SHADOW  :: 0x900D;
-INT_SAMPLER_CUBE_MAP_ARRAY     :: 0x900E;
-UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY :: 0x900F;
-DRAW_INDIRECT_BUFFER           :: 0x8F3F;
-DRAW_INDIRECT_BUFFER_BINDING   :: 0x8F43;
-GEOMETRY_SHADER_INVOCATIONS    :: 0x887F;
-MAX_GEOMETRY_SHADER_INVOCATIONS :: 0x8E5A;
-MIN_FRAGMENT_INTERPOLATION_OFFSET :: 0x8E5B;
-MAX_FRAGMENT_INTERPOLATION_OFFSET :: 0x8E5C;
-FRAGMENT_INTERPOLATION_OFFSET_BITS :: 0x8E5D;
-MAX_VERTEX_STREAMS             :: 0x8E71;
-DOUBLE_VEC2                    :: 0x8FFC;
-DOUBLE_VEC3                    :: 0x8FFD;
-DOUBLE_VEC4                    :: 0x8FFE;
-DOUBLE_MAT2                    :: 0x8F46;
-DOUBLE_MAT3                    :: 0x8F47;
-DOUBLE_MAT4                    :: 0x8F48;
-DOUBLE_MAT2x3                  :: 0x8F49;
-DOUBLE_MAT2x4                  :: 0x8F4A;
-DOUBLE_MAT3x2                  :: 0x8F4B;
-DOUBLE_MAT3x4                  :: 0x8F4C;
-DOUBLE_MAT4x2                  :: 0x8F4D;
-DOUBLE_MAT4x3                  :: 0x8F4E;
-ACTIVE_SUBROUTINES             :: 0x8DE5;
-ACTIVE_SUBROUTINE_UNIFORMS     :: 0x8DE6;
-ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS :: 0x8E47;
-ACTIVE_SUBROUTINE_MAX_LENGTH   :: 0x8E48;
-ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH :: 0x8E49;
-MAX_SUBROUTINES                :: 0x8DE7;
-MAX_SUBROUTINE_UNIFORM_LOCATIONS :: 0x8DE8;
-NUM_COMPATIBLE_SUBROUTINES     :: 0x8E4A;
-COMPATIBLE_SUBROUTINES         :: 0x8E4B;
-PATCHES                        :: 0x000E;
-PATCH_VERTICES                 :: 0x8E72;
-PATCH_DEFAULT_INNER_LEVEL      :: 0x8E73;
-PATCH_DEFAULT_OUTER_LEVEL      :: 0x8E74;
-TESS_CONTROL_OUTPUT_VERTICES   :: 0x8E75;
-TESS_GEN_MODE                  :: 0x8E76;
-TESS_GEN_SPACING               :: 0x8E77;
-TESS_GEN_VERTEX_ORDER          :: 0x8E78;
-TESS_GEN_POINT_MODE            :: 0x8E79;
-ISOLINES                       :: 0x8E7A;
-FRACTIONAL_ODD                 :: 0x8E7B;
-FRACTIONAL_EVEN                :: 0x8E7C;
-MAX_PATCH_VERTICES             :: 0x8E7D;
-MAX_TESS_GEN_LEVEL             :: 0x8E7E;
-MAX_TESS_CONTROL_UNIFORM_COMPONENTS :: 0x8E7F;
-MAX_TESS_EVALUATION_UNIFORM_COMPONENTS :: 0x8E80;
-MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS :: 0x8E81;
-MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS :: 0x8E82;
-MAX_TESS_CONTROL_OUTPUT_COMPONENTS :: 0x8E83;
-MAX_TESS_PATCH_COMPONENTS      :: 0x8E84;
-MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS :: 0x8E85;
-MAX_TESS_EVALUATION_OUTPUT_COMPONENTS :: 0x8E86;
-MAX_TESS_CONTROL_UNIFORM_BLOCKS :: 0x8E89;
-MAX_TESS_EVALUATION_UNIFORM_BLOCKS :: 0x8E8A;
-MAX_TESS_CONTROL_INPUT_COMPONENTS :: 0x886C;
-MAX_TESS_EVALUATION_INPUT_COMPONENTS :: 0x886D;
-MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS :: 0x8E1E;
-MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS :: 0x8E1F;
-UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER :: 0x84F0;
-UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x84F1;
-TESS_EVALUATION_SHADER         :: 0x8E87;
-TESS_CONTROL_SHADER            :: 0x8E88;
-TRANSFORM_FEEDBACK             :: 0x8E22;
-TRANSFORM_FEEDBACK_BUFFER_PAUSED :: 0x8E23;
-TRANSFORM_FEEDBACK_BUFFER_ACTIVE :: 0x8E24;
-TRANSFORM_FEEDBACK_BINDING     :: 0x8E25;
-MAX_TRANSFORM_FEEDBACK_BUFFERS :: 0x8E70;
+SAMPLE_SHADING                 :: 0x8C36
+MIN_SAMPLE_SHADING_VALUE       :: 0x8C37
+MIN_PROGRAM_TEXTURE_GATHER_OFFSET :: 0x8E5E
+MAX_PROGRAM_TEXTURE_GATHER_OFFSET :: 0x8E5F
+TEXTURE_CUBE_MAP_ARRAY         :: 0x9009
+TEXTURE_BINDING_CUBE_MAP_ARRAY :: 0x900A
+PROXY_TEXTURE_CUBE_MAP_ARRAY   :: 0x900B
+SAMPLER_CUBE_MAP_ARRAY         :: 0x900C
+SAMPLER_CUBE_MAP_ARRAY_SHADOW  :: 0x900D
+INT_SAMPLER_CUBE_MAP_ARRAY     :: 0x900E
+UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY :: 0x900F
+DRAW_INDIRECT_BUFFER           :: 0x8F3F
+DRAW_INDIRECT_BUFFER_BINDING   :: 0x8F43
+GEOMETRY_SHADER_INVOCATIONS    :: 0x887F
+MAX_GEOMETRY_SHADER_INVOCATIONS :: 0x8E5A
+MIN_FRAGMENT_INTERPOLATION_OFFSET :: 0x8E5B
+MAX_FRAGMENT_INTERPOLATION_OFFSET :: 0x8E5C
+FRAGMENT_INTERPOLATION_OFFSET_BITS :: 0x8E5D
+MAX_VERTEX_STREAMS             :: 0x8E71
+DOUBLE_VEC2                    :: 0x8FFC
+DOUBLE_VEC3                    :: 0x8FFD
+DOUBLE_VEC4                    :: 0x8FFE
+DOUBLE_MAT2                    :: 0x8F46
+DOUBLE_MAT3                    :: 0x8F47
+DOUBLE_MAT4                    :: 0x8F48
+DOUBLE_MAT2x3                  :: 0x8F49
+DOUBLE_MAT2x4                  :: 0x8F4A
+DOUBLE_MAT3x2                  :: 0x8F4B
+DOUBLE_MAT3x4                  :: 0x8F4C
+DOUBLE_MAT4x2                  :: 0x8F4D
+DOUBLE_MAT4x3                  :: 0x8F4E
+ACTIVE_SUBROUTINES             :: 0x8DE5
+ACTIVE_SUBROUTINE_UNIFORMS     :: 0x8DE6
+ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS :: 0x8E47
+ACTIVE_SUBROUTINE_MAX_LENGTH   :: 0x8E48
+ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH :: 0x8E49
+MAX_SUBROUTINES                :: 0x8DE7
+MAX_SUBROUTINE_UNIFORM_LOCATIONS :: 0x8DE8
+NUM_COMPATIBLE_SUBROUTINES     :: 0x8E4A
+COMPATIBLE_SUBROUTINES         :: 0x8E4B
+PATCHES                        :: 0x000E
+PATCH_VERTICES                 :: 0x8E72
+PATCH_DEFAULT_INNER_LEVEL      :: 0x8E73
+PATCH_DEFAULT_OUTER_LEVEL      :: 0x8E74
+TESS_CONTROL_OUTPUT_VERTICES   :: 0x8E75
+TESS_GEN_MODE                  :: 0x8E76
+TESS_GEN_SPACING               :: 0x8E77
+TESS_GEN_VERTEX_ORDER          :: 0x8E78
+TESS_GEN_POINT_MODE            :: 0x8E79
+ISOLINES                       :: 0x8E7A
+FRACTIONAL_ODD                 :: 0x8E7B
+FRACTIONAL_EVEN                :: 0x8E7C
+MAX_PATCH_VERTICES             :: 0x8E7D
+MAX_TESS_GEN_LEVEL             :: 0x8E7E
+MAX_TESS_CONTROL_UNIFORM_COMPONENTS :: 0x8E7F
+MAX_TESS_EVALUATION_UNIFORM_COMPONENTS :: 0x8E80
+MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS :: 0x8E81
+MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS :: 0x8E82
+MAX_TESS_CONTROL_OUTPUT_COMPONENTS :: 0x8E83
+MAX_TESS_PATCH_COMPONENTS      :: 0x8E84
+MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS :: 0x8E85
+MAX_TESS_EVALUATION_OUTPUT_COMPONENTS :: 0x8E86
+MAX_TESS_CONTROL_UNIFORM_BLOCKS :: 0x8E89
+MAX_TESS_EVALUATION_UNIFORM_BLOCKS :: 0x8E8A
+MAX_TESS_CONTROL_INPUT_COMPONENTS :: 0x886C
+MAX_TESS_EVALUATION_INPUT_COMPONENTS :: 0x886D
+MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS :: 0x8E1E
+MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS :: 0x8E1F
+UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER :: 0x84F0
+UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x84F1
+TESS_EVALUATION_SHADER         :: 0x8E87
+TESS_CONTROL_SHADER            :: 0x8E88
+TRANSFORM_FEEDBACK             :: 0x8E22
+TRANSFORM_FEEDBACK_BUFFER_PAUSED :: 0x8E23
+TRANSFORM_FEEDBACK_BUFFER_ACTIVE :: 0x8E24
+TRANSFORM_FEEDBACK_BINDING     :: 0x8E25
+MAX_TRANSFORM_FEEDBACK_BUFFERS :: 0x8E70
 
-FIXED                          :: 0x140C;
-IMPLEMENTATION_COLOR_READ_TYPE :: 0x8B9A;
-IMPLEMENTATION_COLOR_READ_FORMAT :: 0x8B9B;
-LOW_FLOAT                      :: 0x8DF0;
-MEDIUM_FLOAT                   :: 0x8DF1;
-HIGH_FLOAT                     :: 0x8DF2;
-LOW_INT                        :: 0x8DF3;
-MEDIUM_INT                     :: 0x8DF4;
-HIGH_INT                       :: 0x8DF5;
-SHADER_COMPILER                :: 0x8DFA;
-SHADER_BINARY_FORMATS          :: 0x8DF8;
-NUM_SHADER_BINARY_FORMATS      :: 0x8DF9;
-MAX_VERTEX_UNIFORM_VECTORS     :: 0x8DFB;
-MAX_VARYING_VECTORS            :: 0x8DFC;
-MAX_FRAGMENT_UNIFORM_VECTORS   :: 0x8DFD;
-RGB565                         :: 0x8D62;
-PROGRAM_BINARY_RETRIEVABLE_HINT :: 0x8257;
-PROGRAM_BINARY_LENGTH          :: 0x8741;
-NUM_PROGRAM_BINARY_FORMATS     :: 0x87FE;
-PROGRAM_BINARY_FORMATS         :: 0x87FF;
-VERTEX_SHADER_BIT              :: 0x00000001;
-FRAGMENT_SHADER_BIT            :: 0x00000002;
-GEOMETRY_SHADER_BIT            :: 0x00000004;
-TESS_CONTROL_SHADER_BIT        :: 0x00000008;
-TESS_EVALUATION_SHADER_BIT     :: 0x00000010;
-ALL_SHADER_BITS                :: 0xFFFFFFFF;
-PROGRAM_SEPARABLE              :: 0x8258;
-ACTIVE_PROGRAM                 :: 0x8259;
-PROGRAM_PIPELINE_BINDING       :: 0x825A;
-MAX_VIEWPORTS                  :: 0x825B;
-VIEWPORT_SUBPIXEL_BITS         :: 0x825C;
-VIEWPORT_BOUNDS_RANGE          :: 0x825D;
-LAYER_PROVOKING_VERTEX         :: 0x825E;
-VIEWPORT_INDEX_PROVOKING_VERTEX :: 0x825F;
-UNDEFINED_VERTEX               :: 0x8260;
+FIXED                          :: 0x140C
+IMPLEMENTATION_COLOR_READ_TYPE :: 0x8B9A
+IMPLEMENTATION_COLOR_READ_FORMAT :: 0x8B9B
+LOW_FLOAT                      :: 0x8DF0
+MEDIUM_FLOAT                   :: 0x8DF1
+HIGH_FLOAT                     :: 0x8DF2
+LOW_INT                        :: 0x8DF3
+MEDIUM_INT                     :: 0x8DF4
+HIGH_INT                       :: 0x8DF5
+SHADER_COMPILER                :: 0x8DFA
+SHADER_BINARY_FORMATS          :: 0x8DF8
+NUM_SHADER_BINARY_FORMATS      :: 0x8DF9
+MAX_VERTEX_UNIFORM_VECTORS     :: 0x8DFB
+MAX_VARYING_VECTORS            :: 0x8DFC
+MAX_FRAGMENT_UNIFORM_VECTORS   :: 0x8DFD
+RGB565                         :: 0x8D62
+PROGRAM_BINARY_RETRIEVABLE_HINT :: 0x8257
+PROGRAM_BINARY_LENGTH          :: 0x8741
+NUM_PROGRAM_BINARY_FORMATS     :: 0x87FE
+PROGRAM_BINARY_FORMATS         :: 0x87FF
+VERTEX_SHADER_BIT              :: 0x00000001
+FRAGMENT_SHADER_BIT            :: 0x00000002
+GEOMETRY_SHADER_BIT            :: 0x00000004
+TESS_CONTROL_SHADER_BIT        :: 0x00000008
+TESS_EVALUATION_SHADER_BIT     :: 0x00000010
+ALL_SHADER_BITS                :: 0xFFFFFFFF
+PROGRAM_SEPARABLE              :: 0x8258
+ACTIVE_PROGRAM                 :: 0x8259
+PROGRAM_PIPELINE_BINDING       :: 0x825A
+MAX_VIEWPORTS                  :: 0x825B
+VIEWPORT_SUBPIXEL_BITS         :: 0x825C
+VIEWPORT_BOUNDS_RANGE          :: 0x825D
+LAYER_PROVOKING_VERTEX         :: 0x825E
+VIEWPORT_INDEX_PROVOKING_VERTEX :: 0x825F
+UNDEFINED_VERTEX               :: 0x8260
 
-COPY_READ_BUFFER_BINDING       :: 0x8F36;
-COPY_WRITE_BUFFER_BINDING      :: 0x8F37;
-TRANSFORM_FEEDBACK_ACTIVE      :: 0x8E24;
-TRANSFORM_FEEDBACK_PAUSED      :: 0x8E23;
-UNPACK_COMPRESSED_BLOCK_WIDTH  :: 0x9127;
-UNPACK_COMPRESSED_BLOCK_HEIGHT :: 0x9128;
-UNPACK_COMPRESSED_BLOCK_DEPTH  :: 0x9129;
-UNPACK_COMPRESSED_BLOCK_SIZE   :: 0x912A;
-PACK_COMPRESSED_BLOCK_WIDTH    :: 0x912B;
-PACK_COMPRESSED_BLOCK_HEIGHT   :: 0x912C;
-PACK_COMPRESSED_BLOCK_DEPTH    :: 0x912D;
-PACK_COMPRESSED_BLOCK_SIZE     :: 0x912E;
-NUM_SAMPLE_COUNTS              :: 0x9380;
-MIN_MAP_BUFFER_ALIGNMENT       :: 0x90BC;
-ATOMIC_COUNTER_BUFFER          :: 0x92C0;
-ATOMIC_COUNTER_BUFFER_BINDING  :: 0x92C1;
-ATOMIC_COUNTER_BUFFER_START    :: 0x92C2;
-ATOMIC_COUNTER_BUFFER_SIZE     :: 0x92C3;
-ATOMIC_COUNTER_BUFFER_DATA_SIZE :: 0x92C4;
-ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS :: 0x92C5;
-ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES :: 0x92C6;
-ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER :: 0x92C7;
-ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER :: 0x92C8;
-ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x92C9;
-ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER :: 0x92CA;
-ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER :: 0x92CB;
-MAX_VERTEX_ATOMIC_COUNTER_BUFFERS :: 0x92CC;
-MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS :: 0x92CD;
-MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS :: 0x92CE;
-MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS :: 0x92CF;
-MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS :: 0x92D0;
-MAX_COMBINED_ATOMIC_COUNTER_BUFFERS :: 0x92D1;
-MAX_VERTEX_ATOMIC_COUNTERS     :: 0x92D2;
-MAX_TESS_CONTROL_ATOMIC_COUNTERS :: 0x92D3;
-MAX_TESS_EVALUATION_ATOMIC_COUNTERS :: 0x92D4;
-MAX_GEOMETRY_ATOMIC_COUNTERS   :: 0x92D5;
-MAX_FRAGMENT_ATOMIC_COUNTERS   :: 0x92D6;
-MAX_COMBINED_ATOMIC_COUNTERS   :: 0x92D7;
-MAX_ATOMIC_COUNTER_BUFFER_SIZE :: 0x92D8;
-MAX_ATOMIC_COUNTER_BUFFER_BINDINGS :: 0x92DC;
-ACTIVE_ATOMIC_COUNTER_BUFFERS  :: 0x92D9;
-UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX :: 0x92DA;
-UNSIGNED_INT_ATOMIC_COUNTER    :: 0x92DB;
-VERTEX_ATTRIB_ARRAY_BARRIER_BIT :: 0x00000001;
-ELEMENT_ARRAY_BARRIER_BIT      :: 0x00000002;
-UNIFORM_BARRIER_BIT            :: 0x00000004;
-TEXTURE_FETCH_BARRIER_BIT      :: 0x00000008;
-SHADER_IMAGE_ACCESS_BARRIER_BIT :: 0x00000020;
-COMMAND_BARRIER_BIT            :: 0x00000040;
-PIXEL_BUFFER_BARRIER_BIT       :: 0x00000080;
-TEXTURE_UPDATE_BARRIER_BIT     :: 0x00000100;
-BUFFER_UPDATE_BARRIER_BIT      :: 0x00000200;
-FRAMEBUFFER_BARRIER_BIT        :: 0x00000400;
-TRANSFORM_FEEDBACK_BARRIER_BIT :: 0x00000800;
-ATOMIC_COUNTER_BARRIER_BIT     :: 0x00001000;
-ALL_BARRIER_BITS               :: 0xFFFFFFFF;
-MAX_IMAGE_UNITS                :: 0x8F38;
-MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS :: 0x8F39;
-IMAGE_BINDING_NAME             :: 0x8F3A;
-IMAGE_BINDING_LEVEL            :: 0x8F3B;
-IMAGE_BINDING_LAYERED          :: 0x8F3C;
-IMAGE_BINDING_LAYER            :: 0x8F3D;
-IMAGE_BINDING_ACCESS           :: 0x8F3E;
-IMAGE_1D                       :: 0x904C;
-IMAGE_2D                       :: 0x904D;
-IMAGE_3D                       :: 0x904E;
-IMAGE_2D_RECT                  :: 0x904F;
-IMAGE_CUBE                     :: 0x9050;
-IMAGE_BUFFER                   :: 0x9051;
-IMAGE_1D_ARRAY                 :: 0x9052;
-IMAGE_2D_ARRAY                 :: 0x9053;
-IMAGE_CUBE_MAP_ARRAY           :: 0x9054;
-IMAGE_2D_MULTISAMPLE           :: 0x9055;
-IMAGE_2D_MULTISAMPLE_ARRAY     :: 0x9056;
-INT_IMAGE_1D                   :: 0x9057;
-INT_IMAGE_2D                   :: 0x9058;
-INT_IMAGE_3D                   :: 0x9059;
-INT_IMAGE_2D_RECT              :: 0x905A;
-INT_IMAGE_CUBE                 :: 0x905B;
-INT_IMAGE_BUFFER               :: 0x905C;
-INT_IMAGE_1D_ARRAY             :: 0x905D;
-INT_IMAGE_2D_ARRAY             :: 0x905E;
-INT_IMAGE_CUBE_MAP_ARRAY       :: 0x905F;
-INT_IMAGE_2D_MULTISAMPLE       :: 0x9060;
-INT_IMAGE_2D_MULTISAMPLE_ARRAY :: 0x9061;
-UNSIGNED_INT_IMAGE_1D          :: 0x9062;
-UNSIGNED_INT_IMAGE_2D          :: 0x9063;
-UNSIGNED_INT_IMAGE_3D          :: 0x9064;
-UNSIGNED_INT_IMAGE_2D_RECT     :: 0x9065;
-UNSIGNED_INT_IMAGE_CUBE        :: 0x9066;
-UNSIGNED_INT_IMAGE_BUFFER      :: 0x9067;
-UNSIGNED_INT_IMAGE_1D_ARRAY    :: 0x9068;
-UNSIGNED_INT_IMAGE_2D_ARRAY    :: 0x9069;
-UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY :: 0x906A;
-UNSIGNED_INT_IMAGE_2D_MULTISAMPLE :: 0x906B;
-UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY :: 0x906C;
-MAX_IMAGE_SAMPLES              :: 0x906D;
-IMAGE_BINDING_FORMAT           :: 0x906E;
-IMAGE_FORMAT_COMPATIBILITY_TYPE :: 0x90C7;
-IMAGE_FORMAT_COMPATIBILITY_BY_SIZE :: 0x90C8;
-IMAGE_FORMAT_COMPATIBILITY_BY_CLASS :: 0x90C9;
-MAX_VERTEX_IMAGE_UNIFORMS      :: 0x90CA;
-MAX_TESS_CONTROL_IMAGE_UNIFORMS :: 0x90CB;
-MAX_TESS_EVALUATION_IMAGE_UNIFORMS :: 0x90CC;
-MAX_GEOMETRY_IMAGE_UNIFORMS    :: 0x90CD;
-MAX_FRAGMENT_IMAGE_UNIFORMS    :: 0x90CE;
-MAX_COMBINED_IMAGE_UNIFORMS    :: 0x90CF;
-COMPRESSED_RGBA_BPTC_UNORM     :: 0x8E8C;
-COMPRESSED_SRGB_ALPHA_BPTC_UNORM :: 0x8E8D;
-COMPRESSED_RGB_BPTC_SIGNED_FLOAT :: 0x8E8E;
-COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT :: 0x8E8F;
-TEXTURE_IMMUTABLE_FORMAT       :: 0x912F;
+COPY_READ_BUFFER_BINDING       :: 0x8F36
+COPY_WRITE_BUFFER_BINDING      :: 0x8F37
+TRANSFORM_FEEDBACK_ACTIVE      :: 0x8E24
+TRANSFORM_FEEDBACK_PAUSED      :: 0x8E23
+UNPACK_COMPRESSED_BLOCK_WIDTH  :: 0x9127
+UNPACK_COMPRESSED_BLOCK_HEIGHT :: 0x9128
+UNPACK_COMPRESSED_BLOCK_DEPTH  :: 0x9129
+UNPACK_COMPRESSED_BLOCK_SIZE   :: 0x912A
+PACK_COMPRESSED_BLOCK_WIDTH    :: 0x912B
+PACK_COMPRESSED_BLOCK_HEIGHT   :: 0x912C
+PACK_COMPRESSED_BLOCK_DEPTH    :: 0x912D
+PACK_COMPRESSED_BLOCK_SIZE     :: 0x912E
+NUM_SAMPLE_COUNTS              :: 0x9380
+MIN_MAP_BUFFER_ALIGNMENT       :: 0x90BC
+ATOMIC_COUNTER_BUFFER          :: 0x92C0
+ATOMIC_COUNTER_BUFFER_BINDING  :: 0x92C1
+ATOMIC_COUNTER_BUFFER_START    :: 0x92C2
+ATOMIC_COUNTER_BUFFER_SIZE     :: 0x92C3
+ATOMIC_COUNTER_BUFFER_DATA_SIZE :: 0x92C4
+ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS :: 0x92C5
+ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES :: 0x92C6
+ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER :: 0x92C7
+ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER :: 0x92C8
+ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x92C9
+ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER :: 0x92CA
+ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER :: 0x92CB
+MAX_VERTEX_ATOMIC_COUNTER_BUFFERS :: 0x92CC
+MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS :: 0x92CD
+MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS :: 0x92CE
+MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS :: 0x92CF
+MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS :: 0x92D0
+MAX_COMBINED_ATOMIC_COUNTER_BUFFERS :: 0x92D1
+MAX_VERTEX_ATOMIC_COUNTERS     :: 0x92D2
+MAX_TESS_CONTROL_ATOMIC_COUNTERS :: 0x92D3
+MAX_TESS_EVALUATION_ATOMIC_COUNTERS :: 0x92D4
+MAX_GEOMETRY_ATOMIC_COUNTERS   :: 0x92D5
+MAX_FRAGMENT_ATOMIC_COUNTERS   :: 0x92D6
+MAX_COMBINED_ATOMIC_COUNTERS   :: 0x92D7
+MAX_ATOMIC_COUNTER_BUFFER_SIZE :: 0x92D8
+MAX_ATOMIC_COUNTER_BUFFER_BINDINGS :: 0x92DC
+ACTIVE_ATOMIC_COUNTER_BUFFERS  :: 0x92D9
+UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX :: 0x92DA
+UNSIGNED_INT_ATOMIC_COUNTER    :: 0x92DB
+VERTEX_ATTRIB_ARRAY_BARRIER_BIT :: 0x00000001
+ELEMENT_ARRAY_BARRIER_BIT      :: 0x00000002
+UNIFORM_BARRIER_BIT            :: 0x00000004
+TEXTURE_FETCH_BARRIER_BIT      :: 0x00000008
+SHADER_IMAGE_ACCESS_BARRIER_BIT :: 0x00000020
+COMMAND_BARRIER_BIT            :: 0x00000040
+PIXEL_BUFFER_BARRIER_BIT       :: 0x00000080
+TEXTURE_UPDATE_BARRIER_BIT     :: 0x00000100
+BUFFER_UPDATE_BARRIER_BIT      :: 0x00000200
+FRAMEBUFFER_BARRIER_BIT        :: 0x00000400
+TRANSFORM_FEEDBACK_BARRIER_BIT :: 0x00000800
+ATOMIC_COUNTER_BARRIER_BIT     :: 0x00001000
+ALL_BARRIER_BITS               :: 0xFFFFFFFF
+MAX_IMAGE_UNITS                :: 0x8F38
+MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS :: 0x8F39
+IMAGE_BINDING_NAME             :: 0x8F3A
+IMAGE_BINDING_LEVEL            :: 0x8F3B
+IMAGE_BINDING_LAYERED          :: 0x8F3C
+IMAGE_BINDING_LAYER            :: 0x8F3D
+IMAGE_BINDING_ACCESS           :: 0x8F3E
+IMAGE_1D                       :: 0x904C
+IMAGE_2D                       :: 0x904D
+IMAGE_3D                       :: 0x904E
+IMAGE_2D_RECT                  :: 0x904F
+IMAGE_CUBE                     :: 0x9050
+IMAGE_BUFFER                   :: 0x9051
+IMAGE_1D_ARRAY                 :: 0x9052
+IMAGE_2D_ARRAY                 :: 0x9053
+IMAGE_CUBE_MAP_ARRAY           :: 0x9054
+IMAGE_2D_MULTISAMPLE           :: 0x9055
+IMAGE_2D_MULTISAMPLE_ARRAY     :: 0x9056
+INT_IMAGE_1D                   :: 0x9057
+INT_IMAGE_2D                   :: 0x9058
+INT_IMAGE_3D                   :: 0x9059
+INT_IMAGE_2D_RECT              :: 0x905A
+INT_IMAGE_CUBE                 :: 0x905B
+INT_IMAGE_BUFFER               :: 0x905C
+INT_IMAGE_1D_ARRAY             :: 0x905D
+INT_IMAGE_2D_ARRAY             :: 0x905E
+INT_IMAGE_CUBE_MAP_ARRAY       :: 0x905F
+INT_IMAGE_2D_MULTISAMPLE       :: 0x9060
+INT_IMAGE_2D_MULTISAMPLE_ARRAY :: 0x9061
+UNSIGNED_INT_IMAGE_1D          :: 0x9062
+UNSIGNED_INT_IMAGE_2D          :: 0x9063
+UNSIGNED_INT_IMAGE_3D          :: 0x9064
+UNSIGNED_INT_IMAGE_2D_RECT     :: 0x9065
+UNSIGNED_INT_IMAGE_CUBE        :: 0x9066
+UNSIGNED_INT_IMAGE_BUFFER      :: 0x9067
+UNSIGNED_INT_IMAGE_1D_ARRAY    :: 0x9068
+UNSIGNED_INT_IMAGE_2D_ARRAY    :: 0x9069
+UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY :: 0x906A
+UNSIGNED_INT_IMAGE_2D_MULTISAMPLE :: 0x906B
+UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY :: 0x906C
+MAX_IMAGE_SAMPLES              :: 0x906D
+IMAGE_BINDING_FORMAT           :: 0x906E
+IMAGE_FORMAT_COMPATIBILITY_TYPE :: 0x90C7
+IMAGE_FORMAT_COMPATIBILITY_BY_SIZE :: 0x90C8
+IMAGE_FORMAT_COMPATIBILITY_BY_CLASS :: 0x90C9
+MAX_VERTEX_IMAGE_UNIFORMS      :: 0x90CA
+MAX_TESS_CONTROL_IMAGE_UNIFORMS :: 0x90CB
+MAX_TESS_EVALUATION_IMAGE_UNIFORMS :: 0x90CC
+MAX_GEOMETRY_IMAGE_UNIFORMS    :: 0x90CD
+MAX_FRAGMENT_IMAGE_UNIFORMS    :: 0x90CE
+MAX_COMBINED_IMAGE_UNIFORMS    :: 0x90CF
+COMPRESSED_RGBA_BPTC_UNORM     :: 0x8E8C
+COMPRESSED_SRGB_ALPHA_BPTC_UNORM :: 0x8E8D
+COMPRESSED_RGB_BPTC_SIGNED_FLOAT :: 0x8E8E
+COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT :: 0x8E8F
+TEXTURE_IMMUTABLE_FORMAT       :: 0x912F
 
-NUM_SHADING_LANGUAGE_VERSIONS  :: 0x82E9;
-VERTEX_ATTRIB_ARRAY_LONG       :: 0x874E;
-COMPRESSED_RGB8_ETC2           :: 0x9274;
-COMPRESSED_SRGB8_ETC2          :: 0x9275;
-COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: 0x9276;
-COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: 0x9277;
-COMPRESSED_RGBA8_ETC2_EAC      :: 0x9278;
-COMPRESSED_SRGB8_ALPHA8_ETC2_EAC :: 0x9279;
-COMPRESSED_R11_EAC             :: 0x9270;
-COMPRESSED_SIGNED_R11_EAC      :: 0x9271;
-COMPRESSED_RG11_EAC            :: 0x9272;
-COMPRESSED_SIGNED_RG11_EAC     :: 0x9273;
-PRIMITIVE_RESTART_FIXED_INDEX  :: 0x8D69;
-ANY_SAMPLES_PASSED_CONSERVATIVE :: 0x8D6A;
-MAX_ELEMENT_INDEX              :: 0x8D6B;
-COMPUTE_SHADER                 :: 0x91B9;
-MAX_COMPUTE_UNIFORM_BLOCKS     :: 0x91BB;
-MAX_COMPUTE_TEXTURE_IMAGE_UNITS :: 0x91BC;
-MAX_COMPUTE_IMAGE_UNIFORMS     :: 0x91BD;
-MAX_COMPUTE_SHARED_MEMORY_SIZE :: 0x8262;
-MAX_COMPUTE_UNIFORM_COMPONENTS :: 0x8263;
-MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS :: 0x8264;
-MAX_COMPUTE_ATOMIC_COUNTERS    :: 0x8265;
-MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS :: 0x8266;
-MAX_COMPUTE_WORK_GROUP_INVOCATIONS :: 0x90EB;
-MAX_COMPUTE_WORK_GROUP_COUNT   :: 0x91BE;
-MAX_COMPUTE_WORK_GROUP_SIZE    :: 0x91BF;
-COMPUTE_WORK_GROUP_SIZE        :: 0x8267;
-UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER :: 0x90EC;
-ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER :: 0x90ED;
-DISPATCH_INDIRECT_BUFFER       :: 0x90EE;
-DISPATCH_INDIRECT_BUFFER_BINDING :: 0x90EF;
-COMPUTE_SHADER_BIT             :: 0x00000020;
-DEBUG_OUTPUT_SYNCHRONOUS       :: 0x8242;
-DEBUG_NEXT_LOGGED_MESSAGE_LENGTH :: 0x8243;
-DEBUG_CALLBACK_FUNCTION        :: 0x8244;
-DEBUG_CALLBACK_USER_PARAM      :: 0x8245;
-DEBUG_SOURCE_API               :: 0x8246;
-DEBUG_SOURCE_WINDOW_SYSTEM     :: 0x8247;
-DEBUG_SOURCE_SHADER_COMPILER   :: 0x8248;
-DEBUG_SOURCE_THIRD_PARTY       :: 0x8249;
-DEBUG_SOURCE_APPLICATION       :: 0x824A;
-DEBUG_SOURCE_OTHER             :: 0x824B;
-DEBUG_TYPE_ERROR               :: 0x824C;
-DEBUG_TYPE_DEPRECATED_BEHAVIOR :: 0x824D;
-DEBUG_TYPE_UNDEFINED_BEHAVIOR  :: 0x824E;
-DEBUG_TYPE_PORTABILITY         :: 0x824F;
-DEBUG_TYPE_PERFORMANCE         :: 0x8250;
-DEBUG_TYPE_OTHER               :: 0x8251;
-MAX_DEBUG_MESSAGE_LENGTH       :: 0x9143;
-MAX_DEBUG_LOGGED_MESSAGES      :: 0x9144;
-DEBUG_LOGGED_MESSAGES          :: 0x9145;
-DEBUG_SEVERITY_HIGH            :: 0x9146;
-DEBUG_SEVERITY_MEDIUM          :: 0x9147;
-DEBUG_SEVERITY_LOW             :: 0x9148;
-DEBUG_TYPE_MARKER              :: 0x8268;
-DEBUG_TYPE_PUSH_GROUP          :: 0x8269;
-DEBUG_TYPE_POP_GROUP           :: 0x826A;
-DEBUG_SEVERITY_NOTIFICATION    :: 0x826B;
-MAX_DEBUG_GROUP_STACK_DEPTH    :: 0x826C;
-DEBUG_GROUP_STACK_DEPTH        :: 0x826D;
-BUFFER                         :: 0x82E0;
-SHADER                         :: 0x82E1;
-PROGRAM                        :: 0x82E2;
-QUERY                          :: 0x82E3;
-PROGRAM_PIPELINE               :: 0x82E4;
-SAMPLER                        :: 0x82E6;
-MAX_LABEL_LENGTH               :: 0x82E8;
-DEBUG_OUTPUT                   :: 0x92E0;
-CONTEXT_FLAG_DEBUG_BIT         :: 0x00000002;
-MAX_UNIFORM_LOCATIONS          :: 0x826E;
-FRAMEBUFFER_DEFAULT_WIDTH      :: 0x9310;
-FRAMEBUFFER_DEFAULT_HEIGHT     :: 0x9311;
-FRAMEBUFFER_DEFAULT_LAYERS     :: 0x9312;
-FRAMEBUFFER_DEFAULT_SAMPLES    :: 0x9313;
-FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS :: 0x9314;
-MAX_FRAMEBUFFER_WIDTH          :: 0x9315;
-MAX_FRAMEBUFFER_HEIGHT         :: 0x9316;
-MAX_FRAMEBUFFER_LAYERS         :: 0x9317;
-MAX_FRAMEBUFFER_SAMPLES        :: 0x9318;
-INTERNALFORMAT_SUPPORTED       :: 0x826F;
-INTERNALFORMAT_PREFERRED       :: 0x8270;
-INTERNALFORMAT_RED_SIZE        :: 0x8271;
-INTERNALFORMAT_GREEN_SIZE      :: 0x8272;
-INTERNALFORMAT_BLUE_SIZE       :: 0x8273;
-INTERNALFORMAT_ALPHA_SIZE      :: 0x8274;
-INTERNALFORMAT_DEPTH_SIZE      :: 0x8275;
-INTERNALFORMAT_STENCIL_SIZE    :: 0x8276;
-INTERNALFORMAT_SHARED_SIZE     :: 0x8277;
-INTERNALFORMAT_RED_TYPE        :: 0x8278;
-INTERNALFORMAT_GREEN_TYPE      :: 0x8279;
-INTERNALFORMAT_BLUE_TYPE       :: 0x827A;
-INTERNALFORMAT_ALPHA_TYPE      :: 0x827B;
-INTERNALFORMAT_DEPTH_TYPE      :: 0x827C;
-INTERNALFORMAT_STENCIL_TYPE    :: 0x827D;
-MAX_WIDTH                      :: 0x827E;
-MAX_HEIGHT                     :: 0x827F;
-MAX_DEPTH                      :: 0x8280;
-MAX_LAYERS                     :: 0x8281;
-MAX_COMBINED_DIMENSIONS        :: 0x8282;
-COLOR_COMPONENTS               :: 0x8283;
-DEPTH_COMPONENTS               :: 0x8284;
-STENCIL_COMPONENTS             :: 0x8285;
-COLOR_RENDERABLE               :: 0x8286;
-DEPTH_RENDERABLE               :: 0x8287;
-STENCIL_RENDERABLE             :: 0x8288;
-FRAMEBUFFER_RENDERABLE         :: 0x8289;
-FRAMEBUFFER_RENDERABLE_LAYERED :: 0x828A;
-FRAMEBUFFER_BLEND              :: 0x828B;
-READ_PIXELS                    :: 0x828C;
-READ_PIXELS_FORMAT             :: 0x828D;
-READ_PIXELS_TYPE               :: 0x828E;
-TEXTURE_IMAGE_FORMAT           :: 0x828F;
-TEXTURE_IMAGE_TYPE             :: 0x8290;
-GET_TEXTURE_IMAGE_FORMAT       :: 0x8291;
-GET_TEXTURE_IMAGE_TYPE         :: 0x8292;
-MIPMAP                         :: 0x8293;
-MANUAL_GENERATE_MIPMAP         :: 0x8294;
-AUTO_GENERATE_MIPMAP           :: 0x8295;
-COLOR_ENCODING                 :: 0x8296;
-SRGB_READ                      :: 0x8297;
-SRGB_WRITE                     :: 0x8298;
-FILTER                         :: 0x829A;
-VERTEX_TEXTURE                 :: 0x829B;
-TESS_CONTROL_TEXTURE           :: 0x829C;
-TESS_EVALUATION_TEXTURE        :: 0x829D;
-GEOMETRY_TEXTURE               :: 0x829E;
-FRAGMENT_TEXTURE               :: 0x829F;
-COMPUTE_TEXTURE                :: 0x82A0;
-TEXTURE_SHADOW                 :: 0x82A1;
-TEXTURE_GATHER                 :: 0x82A2;
-TEXTURE_GATHER_SHADOW          :: 0x82A3;
-SHADER_IMAGE_LOAD              :: 0x82A4;
-SHADER_IMAGE_STORE             :: 0x82A5;
-SHADER_IMAGE_ATOMIC            :: 0x82A6;
-IMAGE_TEXEL_SIZE               :: 0x82A7;
-IMAGE_COMPATIBILITY_CLASS      :: 0x82A8;
-IMAGE_PIXEL_FORMAT             :: 0x82A9;
-IMAGE_PIXEL_TYPE               :: 0x82AA;
-SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST :: 0x82AC;
-SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST :: 0x82AD;
-SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE :: 0x82AE;
-SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE :: 0x82AF;
-TEXTURE_COMPRESSED_BLOCK_WIDTH :: 0x82B1;
-TEXTURE_COMPRESSED_BLOCK_HEIGHT :: 0x82B2;
-TEXTURE_COMPRESSED_BLOCK_SIZE  :: 0x82B3;
-CLEAR_BUFFER                   :: 0x82B4;
-TEXTURE_VIEW                   :: 0x82B5;
-VIEW_COMPATIBILITY_CLASS       :: 0x82B6;
-FULL_SUPPORT                   :: 0x82B7;
-CAVEAT_SUPPORT                 :: 0x82B8;
-IMAGE_CLASS_4_X_32             :: 0x82B9;
-IMAGE_CLASS_2_X_32             :: 0x82BA;
-IMAGE_CLASS_1_X_32             :: 0x82BB;
-IMAGE_CLASS_4_X_16             :: 0x82BC;
-IMAGE_CLASS_2_X_16             :: 0x82BD;
-IMAGE_CLASS_1_X_16             :: 0x82BE;
-IMAGE_CLASS_4_X_8              :: 0x82BF;
-IMAGE_CLASS_2_X_8              :: 0x82C0;
-IMAGE_CLASS_1_X_8              :: 0x82C1;
-IMAGE_CLASS_11_11_10           :: 0x82C2;
-IMAGE_CLASS_10_10_10_2         :: 0x82C3;
-VIEW_CLASS_128_BITS            :: 0x82C4;
-VIEW_CLASS_96_BITS             :: 0x82C5;
-VIEW_CLASS_64_BITS             :: 0x82C6;
-VIEW_CLASS_48_BITS             :: 0x82C7;
-VIEW_CLASS_32_BITS             :: 0x82C8;
-VIEW_CLASS_24_BITS             :: 0x82C9;
-VIEW_CLASS_16_BITS             :: 0x82CA;
-VIEW_CLASS_8_BITS              :: 0x82CB;
-VIEW_CLASS_S3TC_DXT1_RGB       :: 0x82CC;
-VIEW_CLASS_S3TC_DXT1_RGBA      :: 0x82CD;
-VIEW_CLASS_S3TC_DXT3_RGBA      :: 0x82CE;
-VIEW_CLASS_S3TC_DXT5_RGBA      :: 0x82CF;
-VIEW_CLASS_RGTC1_RED           :: 0x82D0;
-VIEW_CLASS_RGTC2_RG            :: 0x82D1;
-VIEW_CLASS_BPTC_UNORM          :: 0x82D2;
-VIEW_CLASS_BPTC_FLOAT          :: 0x82D3;
-UNIFORM                        :: 0x92E1;
-UNIFORM_BLOCK                  :: 0x92E2;
-PROGRAM_INPUT                  :: 0x92E3;
-PROGRAM_OUTPUT                 :: 0x92E4;
-BUFFER_VARIABLE                :: 0x92E5;
-SHADER_STORAGE_BLOCK           :: 0x92E6;
-VERTEX_SUBROUTINE              :: 0x92E8;
-TESS_CONTROL_SUBROUTINE        :: 0x92E9;
-TESS_EVALUATION_SUBROUTINE     :: 0x92EA;
-GEOMETRY_SUBROUTINE            :: 0x92EB;
-FRAGMENT_SUBROUTINE            :: 0x92EC;
-COMPUTE_SUBROUTINE             :: 0x92ED;
-VERTEX_SUBROUTINE_UNIFORM      :: 0x92EE;
-TESS_CONTROL_SUBROUTINE_UNIFORM :: 0x92EF;
-TESS_EVALUATION_SUBROUTINE_UNIFORM :: 0x92F0;
-GEOMETRY_SUBROUTINE_UNIFORM    :: 0x92F1;
-FRAGMENT_SUBROUTINE_UNIFORM    :: 0x92F2;
-COMPUTE_SUBROUTINE_UNIFORM     :: 0x92F3;
-TRANSFORM_FEEDBACK_VARYING     :: 0x92F4;
-ACTIVE_RESOURCES               :: 0x92F5;
-MAX_NAME_LENGTH                :: 0x92F6;
-MAX_NUM_ACTIVE_VARIABLES       :: 0x92F7;
-MAX_NUM_COMPATIBLE_SUBROUTINES :: 0x92F8;
-NAME_LENGTH                    :: 0x92F9;
-TYPE                           :: 0x92FA;
-ARRAY_SIZE                     :: 0x92FB;
-OFFSET                         :: 0x92FC;
-BLOCK_INDEX                    :: 0x92FD;
-ARRAY_STRIDE                   :: 0x92FE;
-MATRIX_STRIDE                  :: 0x92FF;
-IS_ROW_MAJOR                   :: 0x9300;
-ATOMIC_COUNTER_BUFFER_INDEX    :: 0x9301;
-BUFFER_BINDING                 :: 0x9302;
-BUFFER_DATA_SIZE               :: 0x9303;
-NUM_ACTIVE_VARIABLES           :: 0x9304;
-ACTIVE_VARIABLES               :: 0x9305;
-REFERENCED_BY_VERTEX_SHADER    :: 0x9306;
-REFERENCED_BY_TESS_CONTROL_SHADER :: 0x9307;
-REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x9308;
-REFERENCED_BY_GEOMETRY_SHADER  :: 0x9309;
-REFERENCED_BY_FRAGMENT_SHADER  :: 0x930A;
-REFERENCED_BY_COMPUTE_SHADER   :: 0x930B;
-TOP_LEVEL_ARRAY_SIZE           :: 0x930C;
-TOP_LEVEL_ARRAY_STRIDE         :: 0x930D;
-LOCATION                       :: 0x930E;
-LOCATION_INDEX                 :: 0x930F;
-IS_PER_PATCH                   :: 0x92E7;
-SHADER_STORAGE_BUFFER          :: 0x90D2;
-SHADER_STORAGE_BUFFER_BINDING  :: 0x90D3;
-SHADER_STORAGE_BUFFER_START    :: 0x90D4;
-SHADER_STORAGE_BUFFER_SIZE     :: 0x90D5;
-MAX_VERTEX_SHADER_STORAGE_BLOCKS :: 0x90D6;
-MAX_GEOMETRY_SHADER_STORAGE_BLOCKS :: 0x90D7;
-MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS :: 0x90D8;
-MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS :: 0x90D9;
-MAX_FRAGMENT_SHADER_STORAGE_BLOCKS :: 0x90DA;
-MAX_COMPUTE_SHADER_STORAGE_BLOCKS :: 0x90DB;
-MAX_COMBINED_SHADER_STORAGE_BLOCKS :: 0x90DC;
-MAX_SHADER_STORAGE_BUFFER_BINDINGS :: 0x90DD;
-MAX_SHADER_STORAGE_BLOCK_SIZE  :: 0x90DE;
-SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT :: 0x90DF;
-SHADER_STORAGE_BARRIER_BIT     :: 0x00002000;
-MAX_COMBINED_SHADER_OUTPUT_RESOURCES :: 0x8F39;
-DEPTH_STENCIL_TEXTURE_MODE     :: 0x90EA;
-TEXTURE_BUFFER_OFFSET          :: 0x919D;
-TEXTURE_BUFFER_SIZE            :: 0x919E;
-TEXTURE_BUFFER_OFFSET_ALIGNMENT :: 0x919F;
-TEXTURE_VIEW_MIN_LEVEL         :: 0x82DB;
-TEXTURE_VIEW_NUM_LEVELS        :: 0x82DC;
-TEXTURE_VIEW_MIN_LAYER         :: 0x82DD;
-TEXTURE_VIEW_NUM_LAYERS        :: 0x82DE;
-TEXTURE_IMMUTABLE_LEVELS       :: 0x82DF;
-VERTEX_ATTRIB_BINDING          :: 0x82D4;
-VERTEX_ATTRIB_RELATIVE_OFFSET  :: 0x82D5;
-VERTEX_BINDING_DIVISOR         :: 0x82D6;
-VERTEX_BINDING_OFFSET          :: 0x82D7;
-VERTEX_BINDING_STRIDE          :: 0x82D8;
-MAX_VERTEX_ATTRIB_RELATIVE_OFFSET :: 0x82D9;
-MAX_VERTEX_ATTRIB_BINDINGS     :: 0x82DA;
-VERTEX_BINDING_BUFFER          :: 0x8F4F;
+NUM_SHADING_LANGUAGE_VERSIONS  :: 0x82E9
+VERTEX_ATTRIB_ARRAY_LONG       :: 0x874E
+COMPRESSED_RGB8_ETC2           :: 0x9274
+COMPRESSED_SRGB8_ETC2          :: 0x9275
+COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: 0x9276
+COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 :: 0x9277
+COMPRESSED_RGBA8_ETC2_EAC      :: 0x9278
+COMPRESSED_SRGB8_ALPHA8_ETC2_EAC :: 0x9279
+COMPRESSED_R11_EAC             :: 0x9270
+COMPRESSED_SIGNED_R11_EAC      :: 0x9271
+COMPRESSED_RG11_EAC            :: 0x9272
+COMPRESSED_SIGNED_RG11_EAC     :: 0x9273
+PRIMITIVE_RESTART_FIXED_INDEX  :: 0x8D69
+ANY_SAMPLES_PASSED_CONSERVATIVE :: 0x8D6A
+MAX_ELEMENT_INDEX              :: 0x8D6B
+COMPUTE_SHADER                 :: 0x91B9
+MAX_COMPUTE_UNIFORM_BLOCKS     :: 0x91BB
+MAX_COMPUTE_TEXTURE_IMAGE_UNITS :: 0x91BC
+MAX_COMPUTE_IMAGE_UNIFORMS     :: 0x91BD
+MAX_COMPUTE_SHARED_MEMORY_SIZE :: 0x8262
+MAX_COMPUTE_UNIFORM_COMPONENTS :: 0x8263
+MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS :: 0x8264
+MAX_COMPUTE_ATOMIC_COUNTERS    :: 0x8265
+MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS :: 0x8266
+MAX_COMPUTE_WORK_GROUP_INVOCATIONS :: 0x90EB
+MAX_COMPUTE_WORK_GROUP_COUNT   :: 0x91BE
+MAX_COMPUTE_WORK_GROUP_SIZE    :: 0x91BF
+COMPUTE_WORK_GROUP_SIZE        :: 0x8267
+UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER :: 0x90EC
+ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER :: 0x90ED
+DISPATCH_INDIRECT_BUFFER       :: 0x90EE
+DISPATCH_INDIRECT_BUFFER_BINDING :: 0x90EF
+COMPUTE_SHADER_BIT             :: 0x00000020
+DEBUG_OUTPUT_SYNCHRONOUS       :: 0x8242
+DEBUG_NEXT_LOGGED_MESSAGE_LENGTH :: 0x8243
+DEBUG_CALLBACK_FUNCTION        :: 0x8244
+DEBUG_CALLBACK_USER_PARAM      :: 0x8245
+DEBUG_SOURCE_API               :: 0x8246
+DEBUG_SOURCE_WINDOW_SYSTEM     :: 0x8247
+DEBUG_SOURCE_SHADER_COMPILER   :: 0x8248
+DEBUG_SOURCE_THIRD_PARTY       :: 0x8249
+DEBUG_SOURCE_APPLICATION       :: 0x824A
+DEBUG_SOURCE_OTHER             :: 0x824B
+DEBUG_TYPE_ERROR               :: 0x824C
+DEBUG_TYPE_DEPRECATED_BEHAVIOR :: 0x824D
+DEBUG_TYPE_UNDEFINED_BEHAVIOR  :: 0x824E
+DEBUG_TYPE_PORTABILITY         :: 0x824F
+DEBUG_TYPE_PERFORMANCE         :: 0x8250
+DEBUG_TYPE_OTHER               :: 0x8251
+MAX_DEBUG_MESSAGE_LENGTH       :: 0x9143
+MAX_DEBUG_LOGGED_MESSAGES      :: 0x9144
+DEBUG_LOGGED_MESSAGES          :: 0x9145
+DEBUG_SEVERITY_HIGH            :: 0x9146
+DEBUG_SEVERITY_MEDIUM          :: 0x9147
+DEBUG_SEVERITY_LOW             :: 0x9148
+DEBUG_TYPE_MARKER              :: 0x8268
+DEBUG_TYPE_PUSH_GROUP          :: 0x8269
+DEBUG_TYPE_POP_GROUP           :: 0x826A
+DEBUG_SEVERITY_NOTIFICATION    :: 0x826B
+MAX_DEBUG_GROUP_STACK_DEPTH    :: 0x826C
+DEBUG_GROUP_STACK_DEPTH        :: 0x826D
+BUFFER                         :: 0x82E0
+SHADER                         :: 0x82E1
+PROGRAM                        :: 0x82E2
+QUERY                          :: 0x82E3
+PROGRAM_PIPELINE               :: 0x82E4
+SAMPLER                        :: 0x82E6
+MAX_LABEL_LENGTH               :: 0x82E8
+DEBUG_OUTPUT                   :: 0x92E0
+CONTEXT_FLAG_DEBUG_BIT         :: 0x00000002
+MAX_UNIFORM_LOCATIONS          :: 0x826E
+FRAMEBUFFER_DEFAULT_WIDTH      :: 0x9310
+FRAMEBUFFER_DEFAULT_HEIGHT     :: 0x9311
+FRAMEBUFFER_DEFAULT_LAYERS     :: 0x9312
+FRAMEBUFFER_DEFAULT_SAMPLES    :: 0x9313
+FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS :: 0x9314
+MAX_FRAMEBUFFER_WIDTH          :: 0x9315
+MAX_FRAMEBUFFER_HEIGHT         :: 0x9316
+MAX_FRAMEBUFFER_LAYERS         :: 0x9317
+MAX_FRAMEBUFFER_SAMPLES        :: 0x9318
+INTERNALFORMAT_SUPPORTED       :: 0x826F
+INTERNALFORMAT_PREFERRED       :: 0x8270
+INTERNALFORMAT_RED_SIZE        :: 0x8271
+INTERNALFORMAT_GREEN_SIZE      :: 0x8272
+INTERNALFORMAT_BLUE_SIZE       :: 0x8273
+INTERNALFORMAT_ALPHA_SIZE      :: 0x8274
+INTERNALFORMAT_DEPTH_SIZE      :: 0x8275
+INTERNALFORMAT_STENCIL_SIZE    :: 0x8276
+INTERNALFORMAT_SHARED_SIZE     :: 0x8277
+INTERNALFORMAT_RED_TYPE        :: 0x8278
+INTERNALFORMAT_GREEN_TYPE      :: 0x8279
+INTERNALFORMAT_BLUE_TYPE       :: 0x827A
+INTERNALFORMAT_ALPHA_TYPE      :: 0x827B
+INTERNALFORMAT_DEPTH_TYPE      :: 0x827C
+INTERNALFORMAT_STENCIL_TYPE    :: 0x827D
+MAX_WIDTH                      :: 0x827E
+MAX_HEIGHT                     :: 0x827F
+MAX_DEPTH                      :: 0x8280
+MAX_LAYERS                     :: 0x8281
+MAX_COMBINED_DIMENSIONS        :: 0x8282
+COLOR_COMPONENTS               :: 0x8283
+DEPTH_COMPONENTS               :: 0x8284
+STENCIL_COMPONENTS             :: 0x8285
+COLOR_RENDERABLE               :: 0x8286
+DEPTH_RENDERABLE               :: 0x8287
+STENCIL_RENDERABLE             :: 0x8288
+FRAMEBUFFER_RENDERABLE         :: 0x8289
+FRAMEBUFFER_RENDERABLE_LAYERED :: 0x828A
+FRAMEBUFFER_BLEND              :: 0x828B
+READ_PIXELS                    :: 0x828C
+READ_PIXELS_FORMAT             :: 0x828D
+READ_PIXELS_TYPE               :: 0x828E
+TEXTURE_IMAGE_FORMAT           :: 0x828F
+TEXTURE_IMAGE_TYPE             :: 0x8290
+GET_TEXTURE_IMAGE_FORMAT       :: 0x8291
+GET_TEXTURE_IMAGE_TYPE         :: 0x8292
+MIPMAP                         :: 0x8293
+MANUAL_GENERATE_MIPMAP         :: 0x8294
+AUTO_GENERATE_MIPMAP           :: 0x8295
+COLOR_ENCODING                 :: 0x8296
+SRGB_READ                      :: 0x8297
+SRGB_WRITE                     :: 0x8298
+FILTER                         :: 0x829A
+VERTEX_TEXTURE                 :: 0x829B
+TESS_CONTROL_TEXTURE           :: 0x829C
+TESS_EVALUATION_TEXTURE        :: 0x829D
+GEOMETRY_TEXTURE               :: 0x829E
+FRAGMENT_TEXTURE               :: 0x829F
+COMPUTE_TEXTURE                :: 0x82A0
+TEXTURE_SHADOW                 :: 0x82A1
+TEXTURE_GATHER                 :: 0x82A2
+TEXTURE_GATHER_SHADOW          :: 0x82A3
+SHADER_IMAGE_LOAD              :: 0x82A4
+SHADER_IMAGE_STORE             :: 0x82A5
+SHADER_IMAGE_ATOMIC            :: 0x82A6
+IMAGE_TEXEL_SIZE               :: 0x82A7
+IMAGE_COMPATIBILITY_CLASS      :: 0x82A8
+IMAGE_PIXEL_FORMAT             :: 0x82A9
+IMAGE_PIXEL_TYPE               :: 0x82AA
+SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST :: 0x82AC
+SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST :: 0x82AD
+SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE :: 0x82AE
+SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE :: 0x82AF
+TEXTURE_COMPRESSED_BLOCK_WIDTH :: 0x82B1
+TEXTURE_COMPRESSED_BLOCK_HEIGHT :: 0x82B2
+TEXTURE_COMPRESSED_BLOCK_SIZE  :: 0x82B3
+CLEAR_BUFFER                   :: 0x82B4
+TEXTURE_VIEW                   :: 0x82B5
+VIEW_COMPATIBILITY_CLASS       :: 0x82B6
+FULL_SUPPORT                   :: 0x82B7
+CAVEAT_SUPPORT                 :: 0x82B8
+IMAGE_CLASS_4_X_32             :: 0x82B9
+IMAGE_CLASS_2_X_32             :: 0x82BA
+IMAGE_CLASS_1_X_32             :: 0x82BB
+IMAGE_CLASS_4_X_16             :: 0x82BC
+IMAGE_CLASS_2_X_16             :: 0x82BD
+IMAGE_CLASS_1_X_16             :: 0x82BE
+IMAGE_CLASS_4_X_8              :: 0x82BF
+IMAGE_CLASS_2_X_8              :: 0x82C0
+IMAGE_CLASS_1_X_8              :: 0x82C1
+IMAGE_CLASS_11_11_10           :: 0x82C2
+IMAGE_CLASS_10_10_10_2         :: 0x82C3
+VIEW_CLASS_128_BITS            :: 0x82C4
+VIEW_CLASS_96_BITS             :: 0x82C5
+VIEW_CLASS_64_BITS             :: 0x82C6
+VIEW_CLASS_48_BITS             :: 0x82C7
+VIEW_CLASS_32_BITS             :: 0x82C8
+VIEW_CLASS_24_BITS             :: 0x82C9
+VIEW_CLASS_16_BITS             :: 0x82CA
+VIEW_CLASS_8_BITS              :: 0x82CB
+VIEW_CLASS_S3TC_DXT1_RGB       :: 0x82CC
+VIEW_CLASS_S3TC_DXT1_RGBA      :: 0x82CD
+VIEW_CLASS_S3TC_DXT3_RGBA      :: 0x82CE
+VIEW_CLASS_S3TC_DXT5_RGBA      :: 0x82CF
+VIEW_CLASS_RGTC1_RED           :: 0x82D0
+VIEW_CLASS_RGTC2_RG            :: 0x82D1
+VIEW_CLASS_BPTC_UNORM          :: 0x82D2
+VIEW_CLASS_BPTC_FLOAT          :: 0x82D3
+UNIFORM                        :: 0x92E1
+UNIFORM_BLOCK                  :: 0x92E2
+PROGRAM_INPUT                  :: 0x92E3
+PROGRAM_OUTPUT                 :: 0x92E4
+BUFFER_VARIABLE                :: 0x92E5
+SHADER_STORAGE_BLOCK           :: 0x92E6
+VERTEX_SUBROUTINE              :: 0x92E8
+TESS_CONTROL_SUBROUTINE        :: 0x92E9
+TESS_EVALUATION_SUBROUTINE     :: 0x92EA
+GEOMETRY_SUBROUTINE            :: 0x92EB
+FRAGMENT_SUBROUTINE            :: 0x92EC
+COMPUTE_SUBROUTINE             :: 0x92ED
+VERTEX_SUBROUTINE_UNIFORM      :: 0x92EE
+TESS_CONTROL_SUBROUTINE_UNIFORM :: 0x92EF
+TESS_EVALUATION_SUBROUTINE_UNIFORM :: 0x92F0
+GEOMETRY_SUBROUTINE_UNIFORM    :: 0x92F1
+FRAGMENT_SUBROUTINE_UNIFORM    :: 0x92F2
+COMPUTE_SUBROUTINE_UNIFORM     :: 0x92F3
+TRANSFORM_FEEDBACK_VARYING     :: 0x92F4
+ACTIVE_RESOURCES               :: 0x92F5
+MAX_NAME_LENGTH                :: 0x92F6
+MAX_NUM_ACTIVE_VARIABLES       :: 0x92F7
+MAX_NUM_COMPATIBLE_SUBROUTINES :: 0x92F8
+NAME_LENGTH                    :: 0x92F9
+TYPE                           :: 0x92FA
+ARRAY_SIZE                     :: 0x92FB
+OFFSET                         :: 0x92FC
+BLOCK_INDEX                    :: 0x92FD
+ARRAY_STRIDE                   :: 0x92FE
+MATRIX_STRIDE                  :: 0x92FF
+IS_ROW_MAJOR                   :: 0x9300
+ATOMIC_COUNTER_BUFFER_INDEX    :: 0x9301
+BUFFER_BINDING                 :: 0x9302
+BUFFER_DATA_SIZE               :: 0x9303
+NUM_ACTIVE_VARIABLES           :: 0x9304
+ACTIVE_VARIABLES               :: 0x9305
+REFERENCED_BY_VERTEX_SHADER    :: 0x9306
+REFERENCED_BY_TESS_CONTROL_SHADER :: 0x9307
+REFERENCED_BY_TESS_EVALUATION_SHADER :: 0x9308
+REFERENCED_BY_GEOMETRY_SHADER  :: 0x9309
+REFERENCED_BY_FRAGMENT_SHADER  :: 0x930A
+REFERENCED_BY_COMPUTE_SHADER   :: 0x930B
+TOP_LEVEL_ARRAY_SIZE           :: 0x930C
+TOP_LEVEL_ARRAY_STRIDE         :: 0x930D
+LOCATION                       :: 0x930E
+LOCATION_INDEX                 :: 0x930F
+IS_PER_PATCH                   :: 0x92E7
+SHADER_STORAGE_BUFFER          :: 0x90D2
+SHADER_STORAGE_BUFFER_BINDING  :: 0x90D3
+SHADER_STORAGE_BUFFER_START    :: 0x90D4
+SHADER_STORAGE_BUFFER_SIZE     :: 0x90D5
+MAX_VERTEX_SHADER_STORAGE_BLOCKS :: 0x90D6
+MAX_GEOMETRY_SHADER_STORAGE_BLOCKS :: 0x90D7
+MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS :: 0x90D8
+MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS :: 0x90D9
+MAX_FRAGMENT_SHADER_STORAGE_BLOCKS :: 0x90DA
+MAX_COMPUTE_SHADER_STORAGE_BLOCKS :: 0x90DB
+MAX_COMBINED_SHADER_STORAGE_BLOCKS :: 0x90DC
+MAX_SHADER_STORAGE_BUFFER_BINDINGS :: 0x90DD
+MAX_SHADER_STORAGE_BLOCK_SIZE  :: 0x90DE
+SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT :: 0x90DF
+SHADER_STORAGE_BARRIER_BIT     :: 0x00002000
+MAX_COMBINED_SHADER_OUTPUT_RESOURCES :: 0x8F39
+DEPTH_STENCIL_TEXTURE_MODE     :: 0x90EA
+TEXTURE_BUFFER_OFFSET          :: 0x919D
+TEXTURE_BUFFER_SIZE            :: 0x919E
+TEXTURE_BUFFER_OFFSET_ALIGNMENT :: 0x919F
+TEXTURE_VIEW_MIN_LEVEL         :: 0x82DB
+TEXTURE_VIEW_NUM_LEVELS        :: 0x82DC
+TEXTURE_VIEW_MIN_LAYER         :: 0x82DD
+TEXTURE_VIEW_NUM_LAYERS        :: 0x82DE
+TEXTURE_IMMUTABLE_LEVELS       :: 0x82DF
+VERTEX_ATTRIB_BINDING          :: 0x82D4
+VERTEX_ATTRIB_RELATIVE_OFFSET  :: 0x82D5
+VERTEX_BINDING_DIVISOR         :: 0x82D6
+VERTEX_BINDING_OFFSET          :: 0x82D7
+VERTEX_BINDING_STRIDE          :: 0x82D8
+MAX_VERTEX_ATTRIB_RELATIVE_OFFSET :: 0x82D9
+MAX_VERTEX_ATTRIB_BINDINGS     :: 0x82DA
+VERTEX_BINDING_BUFFER          :: 0x8F4F
 
-MAX_VERTEX_ATTRIB_STRIDE       :: 0x82E5;
-PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED :: 0x8221;
-TEXTURE_BUFFER_BINDING         :: 0x8C2A;
-MAP_PERSISTENT_BIT             :: 0x0040;
-MAP_COHERENT_BIT               :: 0x0080;
-DYNAMIC_STORAGE_BIT            :: 0x0100;
-CLIENT_STORAGE_BIT             :: 0x0200;
-CLIENT_MAPPED_BUFFER_BARRIER_BIT :: 0x00004000;
-BUFFER_IMMUTABLE_STORAGE       :: 0x821F;
-BUFFER_STORAGE_FLAGS           :: 0x8220;
-CLEAR_TEXTURE                  :: 0x9365;
-LOCATION_COMPONENT             :: 0x934A;
-TRANSFORM_FEEDBACK_BUFFER_INDEX :: 0x934B;
-TRANSFORM_FEEDBACK_BUFFER_STRIDE :: 0x934C;
-QUERY_BUFFER                   :: 0x9192;
-QUERY_BUFFER_BARRIER_BIT       :: 0x00008000;
-QUERY_BUFFER_BINDING           :: 0x9193;
-QUERY_RESULT_NO_WAIT           :: 0x9194;
-MIRROR_CLAMP_TO_EDGE           :: 0x8743;
+MAX_VERTEX_ATTRIB_STRIDE       :: 0x82E5
+PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED :: 0x8221
+TEXTURE_BUFFER_BINDING         :: 0x8C2A
+MAP_PERSISTENT_BIT             :: 0x0040
+MAP_COHERENT_BIT               :: 0x0080
+DYNAMIC_STORAGE_BIT            :: 0x0100
+CLIENT_STORAGE_BIT             :: 0x0200
+CLIENT_MAPPED_BUFFER_BARRIER_BIT :: 0x00004000
+BUFFER_IMMUTABLE_STORAGE       :: 0x821F
+BUFFER_STORAGE_FLAGS           :: 0x8220
+CLEAR_TEXTURE                  :: 0x9365
+LOCATION_COMPONENT             :: 0x934A
+TRANSFORM_FEEDBACK_BUFFER_INDEX :: 0x934B
+TRANSFORM_FEEDBACK_BUFFER_STRIDE :: 0x934C
+QUERY_BUFFER                   :: 0x9192
+QUERY_BUFFER_BARRIER_BIT       :: 0x00008000
+QUERY_BUFFER_BINDING           :: 0x9193
+QUERY_RESULT_NO_WAIT           :: 0x9194
+MIRROR_CLAMP_TO_EDGE           :: 0x8743
 
-CONTEXT_LOST                   :: 0x0507;
-NEGATIVE_ONE_TO_ONE            :: 0x935E;
-ZERO_TO_ONE                    :: 0x935F;
-CLIP_ORIGIN                    :: 0x935C;
-CLIP_DEPTH_MODE                :: 0x935D;
-QUERY_WAIT_INVERTED            :: 0x8E17;
-QUERY_NO_WAIT_INVERTED         :: 0x8E18;
-QUERY_BY_REGION_WAIT_INVERTED  :: 0x8E19;
-QUERY_BY_REGION_NO_WAIT_INVERTED :: 0x8E1A;
-MAX_CULL_DISTANCES             :: 0x82F9;
-MAX_COMBINED_CLIP_AND_CULL_DISTANCES :: 0x82FA;
-TEXTURE_TARGET                 :: 0x1006;
-QUERY_TARGET                   :: 0x82EA;
-GUILTY_CONTEXT_RESET           :: 0x8253;
-INNOCENT_CONTEXT_RESET         :: 0x8254;
-UNKNOWN_CONTEXT_RESET          :: 0x8255;
-RESET_NOTIFICATION_STRATEGY    :: 0x8256;
-LOSE_CONTEXT_ON_RESET          :: 0x8252;
-NO_RESET_NOTIFICATION          :: 0x8261;
-CONTEXT_FLAG_ROBUST_ACCESS_BIT :: 0x00000004;
-CONTEXT_RELEASE_BEHAVIOR       :: 0x82FB;
-CONTEXT_RELEASE_BEHAVIOR_FLUSH :: 0x82FC;
+CONTEXT_LOST                   :: 0x0507
+NEGATIVE_ONE_TO_ONE            :: 0x935E
+ZERO_TO_ONE                    :: 0x935F
+CLIP_ORIGIN                    :: 0x935C
+CLIP_DEPTH_MODE                :: 0x935D
+QUERY_WAIT_INVERTED            :: 0x8E17
+QUERY_NO_WAIT_INVERTED         :: 0x8E18
+QUERY_BY_REGION_WAIT_INVERTED  :: 0x8E19
+QUERY_BY_REGION_NO_WAIT_INVERTED :: 0x8E1A
+MAX_CULL_DISTANCES             :: 0x82F9
+MAX_COMBINED_CLIP_AND_CULL_DISTANCES :: 0x82FA
+TEXTURE_TARGET                 :: 0x1006
+QUERY_TARGET                   :: 0x82EA
+GUILTY_CONTEXT_RESET           :: 0x8253
+INNOCENT_CONTEXT_RESET         :: 0x8254
+UNKNOWN_CONTEXT_RESET          :: 0x8255
+RESET_NOTIFICATION_STRATEGY    :: 0x8256
+LOSE_CONTEXT_ON_RESET          :: 0x8252
+NO_RESET_NOTIFICATION          :: 0x8261
+CONTEXT_FLAG_ROBUST_ACCESS_BIT :: 0x00000004
+CONTEXT_RELEASE_BEHAVIOR       :: 0x82FB
+CONTEXT_RELEASE_BEHAVIOR_FLUSH :: 0x82FC
 
-DEBUG_OUTPUT_SYNCHRONOUS_ARB   :: 0x8242;
-DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB :: 0x8243;
-DEBUG_CALLBACK_FUNCTION_ARB    :: 0x8244;
-DEBUG_CALLBACK_USER_PARAM_ARB  :: 0x8245;
-DEBUG_SOURCE_API_ARB           :: 0x8246;
-DEBUG_SOURCE_WINDOW_SYSTEM_ARB :: 0x8247;
-DEBUG_SOURCE_SHADER_COMPILER_ARB :: 0x8248;
-DEBUG_SOURCE_THIRD_PARTY_ARB   :: 0x8249;
-DEBUG_SOURCE_APPLICATION_ARB   :: 0x824A;
-DEBUG_SOURCE_OTHER_ARB         :: 0x824B;
-DEBUG_TYPE_ERROR_ARB           :: 0x824C;
-DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB :: 0x824D;
-DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB :: 0x824E;
-DEBUG_TYPE_PORTABILITY_ARB     :: 0x824F;
-DEBUG_TYPE_PERFORMANCE_ARB     :: 0x8250;
-DEBUG_TYPE_OTHER_ARB           :: 0x8251;
-MAX_DEBUG_MESSAGE_LENGTH_ARB   :: 0x9143;
-MAX_DEBUG_LOGGED_MESSAGES_ARB  :: 0x9144;
-DEBUG_LOGGED_MESSAGES_ARB      :: 0x9145;
-DEBUG_SEVERITY_HIGH_ARB        :: 0x9146;
-DEBUG_SEVERITY_MEDIUM_ARB      :: 0x9147;
-DEBUG_SEVERITY_LOW_ARB         :: 0x9148;
+DEBUG_OUTPUT_SYNCHRONOUS_ARB   :: 0x8242
+DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB :: 0x8243
+DEBUG_CALLBACK_FUNCTION_ARB    :: 0x8244
+DEBUG_CALLBACK_USER_PARAM_ARB  :: 0x8245
+DEBUG_SOURCE_API_ARB           :: 0x8246
+DEBUG_SOURCE_WINDOW_SYSTEM_ARB :: 0x8247
+DEBUG_SOURCE_SHADER_COMPILER_ARB :: 0x8248
+DEBUG_SOURCE_THIRD_PARTY_ARB   :: 0x8249
+DEBUG_SOURCE_APPLICATION_ARB   :: 0x824A
+DEBUG_SOURCE_OTHER_ARB         :: 0x824B
+DEBUG_TYPE_ERROR_ARB           :: 0x824C
+DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB :: 0x824D
+DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB :: 0x824E
+DEBUG_TYPE_PORTABILITY_ARB     :: 0x824F
+DEBUG_TYPE_PERFORMANCE_ARB     :: 0x8250
+DEBUG_TYPE_OTHER_ARB           :: 0x8251
+MAX_DEBUG_MESSAGE_LENGTH_ARB   :: 0x9143
+MAX_DEBUG_LOGGED_MESSAGES_ARB  :: 0x9144
+DEBUG_LOGGED_MESSAGES_ARB      :: 0x9145
+DEBUG_SEVERITY_HIGH_ARB        :: 0x9146
+DEBUG_SEVERITY_MEDIUM_ARB      :: 0x9147
+DEBUG_SEVERITY_LOW_ARB         :: 0x9148
 
 
-SHADER_BINARY_FORMAT_SPIR_V    :: 0x9551;
-SPIR_V_BINARY                  :: 0x9552;
-PARAMETER_BUFFER               :: 0x80EE;
-PARAMETER_BUFFER_BINDING       :: 0x80EF;
-CONTEXT_FLAG_NO_ERROR_BIT      :: 0x00000008;
-VERTICES_SUBMITTED             :: 0x82EE;
-PRIMITIVES_SUBMITTED           :: 0x82EF;
-VERTEX_SHADER_INVOCATIONS      :: 0x82F0;
-TESS_CONTROL_SHADER_PATCHES    :: 0x82F1;
-TESS_EVALUATION_SHADER_INVOCATIONS :: 0x82F2;
-GEOMETRY_SHADER_PRIMITIVES_EMITTED :: 0x82F3;
-FRAGMENT_SHADER_INVOCATIONS    :: 0x82F4;
-COMPUTE_SHADER_INVOCATIONS     :: 0x82F5;
-CLIPPING_INPUT_PRIMITIVES      :: 0x82F6;
-CLIPPING_OUTPUT_PRIMITIVES     :: 0x82F7;
-POLYGON_OFFSET_CLAMP           :: 0x8E1B;
-SPIR_V_EXTENSIONS              :: 0x9553;
-NUM_SPIR_V_EXTENSIONS          :: 0x9554;
-TEXTURE_MAX_ANISOTROPY         :: 0x84FE;
-MAX_TEXTURE_MAX_ANISOTROPY     :: 0x84FF;
-TRANSFORM_FEEDBACK_OVERFLOW    :: 0x82EC;
-TRANSFORM_FEEDBACK_STREAM_OVERFLOW :: 0x82ED;
+SHADER_BINARY_FORMAT_SPIR_V    :: 0x9551
+SPIR_V_BINARY                  :: 0x9552
+PARAMETER_BUFFER               :: 0x80EE
+PARAMETER_BUFFER_BINDING       :: 0x80EF
+CONTEXT_FLAG_NO_ERROR_BIT      :: 0x00000008
+VERTICES_SUBMITTED             :: 0x82EE
+PRIMITIVES_SUBMITTED           :: 0x82EF
+VERTEX_SHADER_INVOCATIONS      :: 0x82F0
+TESS_CONTROL_SHADER_PATCHES    :: 0x82F1
+TESS_EVALUATION_SHADER_INVOCATIONS :: 0x82F2
+GEOMETRY_SHADER_PRIMITIVES_EMITTED :: 0x82F3
+FRAGMENT_SHADER_INVOCATIONS    :: 0x82F4
+COMPUTE_SHADER_INVOCATIONS     :: 0x82F5
+CLIPPING_INPUT_PRIMITIVES      :: 0x82F6
+CLIPPING_OUTPUT_PRIMITIVES     :: 0x82F7
+POLYGON_OFFSET_CLAMP           :: 0x8E1B
+SPIR_V_EXTENSIONS              :: 0x9553
+NUM_SPIR_V_EXTENSIONS          :: 0x9554
+TEXTURE_MAX_ANISOTROPY         :: 0x84FE
+MAX_TEXTURE_MAX_ANISOTROPY     :: 0x84FF
+TRANSFORM_FEEDBACK_OVERFLOW    :: 0x82EC
+TRANSFORM_FEEDBACK_STREAM_OVERFLOW :: 0x82ED
 
 // Extensions, extended as necessary
 DEVICE_LUID_EXT :: 0x9599;

+ 106 - 106
vendor/OpenGL/helpers.odin

@@ -19,27 +19,27 @@ Shader_Type :: enum i32 {
 
 
 @(private, thread_local)
-last_compile_error_message: []byte;
+last_compile_error_message: []byte
 @(private, thread_local)
-last_link_error_message: []byte;
+last_link_error_message: []byte
 
 @(private, thread_local)
-last_compile_error_type: Shader_Type;
+last_compile_error_type: Shader_Type
 @(private, thread_local)
-last_link_error_type: Shader_Type;
+last_link_error_type: Shader_Type
 
 get_last_error_messages :: proc() -> (compile_message: string, compile_type: Shader_Type, link_message: string, link_type: Shader_Type) {
-	compile_message = string(last_compile_error_message[:max(0, len(last_compile_error_message)-1)]);
-	compile_type = last_compile_error_type;
-	link_message = string(last_link_error_message[:max(0, len(last_link_error_message)-1)]);
-	link_type = last_link_error_type;
-	return;
+	compile_message = string(last_compile_error_message[:max(0, len(last_compile_error_message)-1)])
+	compile_type = last_compile_error_type
+	link_message = string(last_link_error_message[:max(0, len(last_link_error_message)-1)])
+	link_type = last_link_error_type
+	return
 }
 
 get_last_error_message :: proc() -> (compile_message: string, compile_type: Shader_Type) {
-	compile_message = string(last_compile_error_message[:max(0, len(last_compile_error_message)-1)]);
-	compile_type = last_compile_error_type;
-	return;
+	compile_message = string(last_compile_error_message[:max(0, len(last_compile_error_message)-1)])
+	compile_type = last_compile_error_type
+	return
 }
 
 // Shader checking and linking checking are identical
@@ -55,32 +55,32 @@ when ODIN_DEBUG {
 		log_func: proc "c" (u32, i32, ^i32, [^]u8, runtime.Source_Code_Location), 
 		loc := #caller_location,
 	) -> (success: bool) {
-		result, info_log_length: i32;
-		iv_func(id, status, &result, loc);
-		iv_func(id, INFO_LOG_LENGTH, &info_log_length, loc);
+		result, info_log_length: i32
+		iv_func(id, status, &result, loc)
+		iv_func(id, INFO_LOG_LENGTH, &info_log_length, loc)
 
 		if result == 0 {
 			if log_func == GetShaderInfoLog {
-				delete(last_compile_error_message);
-				last_compile_error_message = make([]byte, info_log_length);
-				last_compile_error_type = type;
+				delete(last_compile_error_message)
+				last_compile_error_message = make([]byte, info_log_length)
+				last_compile_error_type = type
 
-				log_func(id, i32(info_log_length), nil, raw_data(last_compile_error_message), loc);
+				log_func(id, i32(info_log_length), nil, raw_data(last_compile_error_message), loc)
 				//fmt.printf_err("Error in %v:\n%s", type, string(last_compile_error_message[0:len(last_compile_error_message)-1]));
 			} else {
 
-				delete(last_link_error_message);
-				last_link_error_message = make([]byte, info_log_length);
-				last_compile_error_type = type;
+				delete(last_link_error_message)
+				last_link_error_message = make([]byte, info_log_length)
+				last_compile_error_type = type
 
-				log_func(id, i32(info_log_length), nil, raw_data(last_link_error_message), loc);
+				log_func(id, i32(info_log_length), nil, raw_data(last_link_error_message), loc)
 				//fmt.printf_err("Error in %v:\n%s", type, string(last_link_error_message[0:len(last_link_error_message)-1]));
 			}
 
-			return false;
+			return false
 		}
 
-		return true;
+		return true
 	}
 } else {
 	@private
@@ -89,103 +89,103 @@ when ODIN_DEBUG {
 		iv_func: proc "c" (u32, u32, [^]i32),
 		log_func: proc "c" (u32, i32, ^i32, [^]u8),
 	) -> (success: bool) {
-		result, info_log_length: i32;
-		iv_func(id, status, &result);
-		iv_func(id, INFO_LOG_LENGTH, &info_log_length);
+		result, info_log_length: i32
+		iv_func(id, status, &result)
+		iv_func(id, INFO_LOG_LENGTH, &info_log_length)
 
 		if result == 0 {
 			if log_func == GetShaderInfoLog {
-				delete(last_compile_error_message);
-				last_compile_error_message = make([]u8, info_log_length);
-				last_link_error_type = type;
+				delete(last_compile_error_message)
+				last_compile_error_message = make([]u8, info_log_length)
+				last_link_error_type = type
 
-				log_func(id, i32(info_log_length), nil, raw_data(last_compile_error_message));
-				fmt.eprintf("Error in %v:\n%s", type, string(last_compile_error_message[0:len(last_compile_error_message)-1]));
+				log_func(id, i32(info_log_length), nil, raw_data(last_compile_error_message))
+				fmt.eprintf("Error in %v:\n%s", type, string(last_compile_error_message[0:len(last_compile_error_message)-1]))
 			} else {
-				delete(last_link_error_message);
-				last_link_error_message = make([]u8, info_log_length);
-				last_link_error_type = type;
+				delete(last_link_error_message)
+				last_link_error_message = make([]u8, info_log_length)
+				last_link_error_type = type
 
-				log_func(id, i32(info_log_length), nil, raw_data(last_link_error_message));
-				fmt.eprintf("Error in %v:\n%s", type, string(last_link_error_message[0:len(last_link_error_message)-1]));
+				log_func(id, i32(info_log_length), nil, raw_data(last_link_error_message))
+				fmt.eprintf("Error in %v:\n%s", type, string(last_link_error_message[0:len(last_link_error_message)-1]))
 
 			}
 
-			return false;
+			return false
 		}
 
-		return true;
+		return true
 	}
 }
 
 // Compiling shaders are identical for any shader (vertex, geometry, fragment, tesselation, (maybe compute too))
 @private
 compile_shader_from_source :: proc(shader_data: string, shader_type: Shader_Type) -> (shader_id: u32, ok: bool) {
-	shader_id = CreateShader(cast(u32)shader_type);
-	length := i32(len(shader_data));
-	shader_data_copy := cstring(raw_data(shader_data));
-	ShaderSource(shader_id, 1, &shader_data_copy, &length);
-	CompileShader(shader_id);
-
-	check_error(shader_id, shader_type, COMPILE_STATUS, GetShaderiv, GetShaderInfoLog) or_return;
-	ok = true;
-	return;
+	shader_id = CreateShader(cast(u32)shader_type)
+	length := i32(len(shader_data))
+	shader_data_copy := cstring(raw_data(shader_data))
+	ShaderSource(shader_id, 1, &shader_data_copy, &length)
+	CompileShader(shader_id)
+
+	check_error(shader_id, shader_type, COMPILE_STATUS, GetShaderiv, GetShaderInfoLog) or_return
+	ok = true
+	return
 }
 
 // only used once, but I'd just make a subprocedure(?) for consistency
 @private
 create_and_link_program :: proc(shader_ids: []u32, binary_retrievable := false) -> (program_id: u32, ok: bool) {
-	program_id = CreateProgram();
+	program_id = CreateProgram()
 	for id in shader_ids {
-		AttachShader(program_id, id);
+		AttachShader(program_id, id)
 	}
 	if binary_retrievable {
-		ProgramParameteri(program_id, PROGRAM_BINARY_RETRIEVABLE_HINT, 1/*true*/);
+		ProgramParameteri(program_id, PROGRAM_BINARY_RETRIEVABLE_HINT, 1/*true*/)
 	}
-	LinkProgram(program_id);
+	LinkProgram(program_id)
 
-	check_error(program_id, Shader_Type.SHADER_LINK, LINK_STATUS, GetProgramiv, GetProgramInfoLog) or_return;
-	ok = true;
-	return;
+	check_error(program_id, Shader_Type.SHADER_LINK, LINK_STATUS, GetProgramiv, GetProgramInfoLog) or_return
+	ok = true
+	return
 }
 
 load_compute_file :: proc(filename: string, binary_retrievable := false) -> (program_id: u32, ok: bool) {
-	cs_data := os.read_entire_file(filename) or_return;
-	defer delete(cs_data);
+	cs_data := os.read_entire_file(filename) or_return
+	defer delete(cs_data)
 
 	// Create the shaders
-	compute_shader_id := compile_shader_from_source(string(cs_data), Shader_Type(COMPUTE_SHADER)) or_return;
-	return create_and_link_program([]u32{compute_shader_id}, binary_retrievable);
+	compute_shader_id := compile_shader_from_source(string(cs_data), Shader_Type(COMPUTE_SHADER)) or_return
+	return create_and_link_program([]u32{compute_shader_id}, binary_retrievable)
 }
 
 load_compute_source :: proc(cs_data: string, binary_retrievable := false) -> (program_id: u32, ok: bool) {
 	// Create the shaders
-	compute_shader_id := compile_shader_from_source(cs_data, Shader_Type(COMPUTE_SHADER)) or_return;
-	return create_and_link_program([]u32{compute_shader_id}, binary_retrievable);
+	compute_shader_id := compile_shader_from_source(cs_data, Shader_Type(COMPUTE_SHADER)) or_return
+	return create_and_link_program([]u32{compute_shader_id}, binary_retrievable)
 }
 
 load_shaders_file :: proc(vs_filename, fs_filename: string, binary_retrievable := false) -> (program_id: u32, ok: bool) {
-	vs_data := os.read_entire_file(vs_filename) or_return;
-	defer delete(vs_data);
+	vs_data := os.read_entire_file(vs_filename) or_return
+	defer delete(vs_data)
 	
-	fs_data := os.read_entire_file(fs_filename) or_return;
-	defer delete(fs_data);
+	fs_data := os.read_entire_file(fs_filename) or_return
+	defer delete(fs_data)
 
-	return load_shaders_source(string(vs_data), string(fs_data), binary_retrievable);
+	return load_shaders_source(string(vs_data), string(fs_data), binary_retrievable)
 }
 
 load_shaders_source :: proc(vs_source, fs_source: string, binary_retrievable := false) -> (program_id: u32, ok: bool) {
 	// actual function from here
-	vertex_shader_id := compile_shader_from_source(vs_source, Shader_Type.VERTEX_SHADER) or_return;
-	defer DeleteShader(vertex_shader_id);
+	vertex_shader_id := compile_shader_from_source(vs_source, Shader_Type.VERTEX_SHADER) or_return
+	defer DeleteShader(vertex_shader_id)
 
-	fragment_shader_id := compile_shader_from_source(fs_source, Shader_Type.FRAGMENT_SHADER) or_return;
-	defer DeleteShader(fragment_shader_id);
+	fragment_shader_id := compile_shader_from_source(fs_source, Shader_Type.FRAGMENT_SHADER) or_return
+	defer DeleteShader(fragment_shader_id)
 
-	return create_and_link_program([]u32{vertex_shader_id, fragment_shader_id}, binary_retrievable);
+	return create_and_link_program([]u32{vertex_shader_id, fragment_shader_id}, binary_retrievable)
 }
 
-load_shaders :: proc{load_shaders_file};
+load_shaders :: proc{load_shaders_file}
 
 
 when ODIN_OS == "windows" {
@@ -198,23 +198,23 @@ when ODIN_OS == "windows" {
 		current_vertex_time, current_fragment_time: os.File_Time, 
 		updated: bool,
 	) {
-		current_vertex_time, _ = os.last_write_time_by_name(vertex_name);
-		current_fragment_time, _ = os.last_write_time_by_name(fragment_name);
-		old_program = program;
+		current_vertex_time, _ = os.last_write_time_by_name(vertex_name)
+		current_fragment_time, _ = os.last_write_time_by_name(fragment_name)
+		old_program = program
 
 		if current_vertex_time != last_vertex_time || current_fragment_time != last_fragment_time {
-			new_program, success := load_shaders(vertex_name, fragment_name);
+			new_program, success := load_shaders(vertex_name, fragment_name)
 			if success {
-				DeleteProgram(old_program);
-				old_program = new_program;
-				fmt.println("Updated shaders");
-				updated = true;
+				DeleteProgram(old_program)
+				old_program = new_program
+				fmt.println("Updated shaders")
+				updated = true
 			} else {
-				fmt.println("Failed to update shaders");
+				fmt.println("Failed to update shaders")
 			}
 		}
 
-		return old_program, current_vertex_time, current_fragment_time, updated;
+		return old_program, current_vertex_time, current_fragment_time, updated
 	}
 
 	update_shader_if_changed_compute :: proc(
@@ -226,22 +226,22 @@ when ODIN_OS == "windows" {
 		current_compute_time: os.File_Time, 
 		updated: bool,
 	) {
-		current_compute_time, _ = os.last_write_time_by_name(compute_name);
-		old_program = program;
+		current_compute_time, _ = os.last_write_time_by_name(compute_name)
+		old_program = program
 
 		if current_compute_time != last_compute_time {
-			new_program, success := load_compute_file(compute_name);
+			new_program, success := load_compute_file(compute_name)
 			if success {
-				DeleteProgram(old_program);
-				old_program = new_program;
-				fmt.println("Updated shaders");
-				updated = true;
+				DeleteProgram(old_program)
+				old_program = new_program
+				fmt.println("Updated shaders")
+				updated = true
 			} else {
-				fmt.println("Failed to update shaders");
+				fmt.println("Failed to update shaders")
 			}
 		}
 
-		return old_program, current_compute_time, updated;
+		return old_program, current_compute_time, updated
 	}
 }
 
@@ -377,34 +377,34 @@ Uniform_Info :: struct {
 	name:     string, // NOTE: This will need to be freed
 }
 
-Uniforms :: map[string]Uniform_Info;
+Uniforms :: map[string]Uniform_Info
 
 destroy_uniforms :: proc(u: Uniforms) {
 	for _, v in u {
-		delete(v.name);
+		delete(v.name)
 	}
-	delete(u);
+	delete(u)
 }
 
 get_uniforms_from_program :: proc(program: u32) -> (uniforms: Uniforms) {
-	uniform_count: i32;
-	GetProgramiv(program, ACTIVE_UNIFORMS, &uniform_count);
+	uniform_count: i32
+	GetProgramiv(program, ACTIVE_UNIFORMS, &uniform_count)
 
 	if uniform_count > 0 {
-		reserve(&uniforms, int(uniform_count));
+		reserve(&uniforms, int(uniform_count))
 	}
 
 	for i in 0..<uniform_count {
-		uniform_info: Uniform_Info;
+		uniform_info: Uniform_Info
 
-		length: i32;
-		cname: [256]u8;
-		GetActiveUniform(program, u32(i), 256, &length, &uniform_info.size, cast(^u32)&uniform_info.kind, &cname[0]);
+		length: i32
+		cname: [256]u8
+		GetActiveUniform(program, u32(i), 256, &length, &uniform_info.size, cast(^u32)&uniform_info.kind, &cname[0])
 
-		uniform_info.location = GetUniformLocation(program, cstring(&cname[0]));
-		uniform_info.name = strings.clone(string(cname[:length])); // @NOTE: These need to be freed
-		uniforms[uniform_info.name] = uniform_info;
+		uniform_info.location = GetUniformLocation(program, cstring(&cname[0]))
+		uniform_info.name = strings.clone(string(cname[:length])) // @NOTE: These need to be freed
+		uniforms[uniform_info.name] = uniform_info
 	}
 
-	return uniforms;
+	return uniforms
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 778 - 778
vendor/OpenGL/impl.odin


+ 17 - 17
vendor/OpenGL/wrappers.odin

@@ -744,7 +744,7 @@ when !ODIN_DEBUG {
 	import "core:fmt"
 
 	debug_helper :: #force_inline proc"c"(from_loc: runtime.Source_Code_Location, num_ret: int, args: ..any, loc := #caller_location) {
-		context = runtime.default_context();
+		context = runtime.default_context()
 
 		Error_Enum :: enum {
 			NO_ERROR = NO_ERROR,
@@ -756,50 +756,50 @@ when !ODIN_DEBUG {
 			STACK_UNDERFLOW = STACK_UNDERFLOW,
 			STACK_OVERFLOW = STACK_OVERFLOW,
 			// TODO: What if the return enum is invalid?
-		};
+		}
 
 		// There can be multiple errors, so we're required to continuously call glGetError until there are no more errors
 		for i := 0; /**/; i += 1 {
-			err := cast(Error_Enum)impl_GetError();
-			if err == .NO_ERROR do break;
+			err := cast(Error_Enum)impl_GetError()
+			if err == .NO_ERROR do break
 
-			fmt.printf("%d: glGetError() returned GL_%v\n", i, err);
+			fmt.printf("%d: glGetError() returned GL_%v\n", i, err)
 
 			// add function call
-			fmt.printf("   call: gl%s(", loc.procedure);
+			fmt.printf("   call: gl%s(", loc.procedure)
 			{
 				// add input arguments
 				for arg, i in args[num_ret:] {
-				if i > 0 do fmt.printf(", ");
+				if i > 0 do fmt.printf(", ")
 
 				if v, ok := arg.(u32); ok { // TODO: Assumes all u32 are GLenum (they're not, GLbitfield and GLuint are also mapped to u32), fix later by better typing
 					if err == .INVALID_ENUM {
-						fmt.printf("INVALID_ENUM=%d", v);
+						fmt.printf("INVALID_ENUM=%d", v)
 					} else {
-						fmt.printf("GL_%v=%d", GL_Enum(v), v);
+						fmt.printf("GL_%v=%d", GL_Enum(v), v)
 					}
 				} else {
-					fmt.printf("%v", arg);
+					fmt.printf("%v", arg)
 				}
 				}
 
 				// add return arguments
 				if num_ret == 1 {
-					fmt.printf(") -> %v \n", args[0]);
+					fmt.printf(") -> %v \n", args[0])
 				} else if num_ret > 1 {
-					fmt.printf(") -> (");
+					fmt.printf(") -> (")
 					for arg, i in args[1:num_ret] {
-						if i > 0 do fmt.printf(", ");
-						fmt.printf("%v", arg);
+						if i > 0 do fmt.printf(", ")
+						fmt.printf("%v", arg)
 					}
-					fmt.printf(")\n");
+					fmt.printf(")\n")
 				} else {
-					fmt.printf(")\n");
+					fmt.printf(")\n")
 				}
 			}
 
 			// add location
-		    fmt.printf("   in:   %s(%d:%d)\n", from_loc.file_path, from_loc.line, from_loc.column);
+		    fmt.printf("   in:   %s(%d:%d)\n", from_loc.file_path, from_loc.line, from_loc.column)
 		}
 	}
 

+ 26 - 26
vendor/glfw/bindings/types.odin

@@ -2,9 +2,9 @@ package glfw_bindings
 
 import "core:c"
 
-WindowHandle  :: distinct rawptr;
-MonitorHandle :: distinct rawptr;
-CursorHandle  :: distinct rawptr;
+WindowHandle  :: distinct rawptr
+MonitorHandle :: distinct rawptr
+CursorHandle  :: distinct rawptr
 
 VidMode :: struct {
 	width:        c.int,
@@ -13,7 +13,7 @@ VidMode :: struct {
 	green_bits:   c.int,
 	blue_bits:    c.int,
 	refresh_rate: c.int,
-};
+}
 
 GammaRamp :: struct {
 	red, green, blue: [^]c.ushort,
@@ -31,25 +31,25 @@ GamepadState :: struct {
 }
 
 /*** Procedure type declarations ***/
-WindowIconifyProc      :: #type proc "c" (window: WindowHandle, iconified: c.int);
-WindowRefreshProc      :: #type proc "c" (window: WindowHandle);
-WindowFocusProc        :: #type proc "c" (window: WindowHandle, focused: c.int);
-WindowCloseProc        :: #type proc "c" (window: WindowHandle);
-WindowSizeProc         :: #type proc "c" (window: WindowHandle, width, height: c.int);
-WindowPosProc          :: #type proc "c" (window: WindowHandle, xpos, ypos: c.int);
-WindowMaximizeProc     :: #type proc "c" (window: WindowHandle, iconified: c.int); 
-WindowContentScaleProc :: #type proc "c" (window: WindowHandle, xscale, yscale: f32);
-FramebufferSizeProc    :: #type proc "c" (window: WindowHandle, width, height: c.int);
-DropProc               :: #type proc "c" (window: WindowHandle, count: c.int, paths: [^]cstring);
-MonitorProc            :: #type proc "c" (window: WindowHandle);
-
-KeyProc                :: #type proc "c" (window: WindowHandle, key, scancode, action, mods: c.int);
-MouseButtonProc        :: #type proc "c" (window: WindowHandle, button, action, mods: c.int);
-CursorPosProc          :: #type proc "c" (window: WindowHandle, xpos,  ypos: f64);
-ScrollProc             :: #type proc "c" (window: WindowHandle, xoffset, yoffset: f64);
-CharProc               :: #type proc "c" (window: WindowHandle, codepoint: rune);
-CharModsProc           :: #type proc "c" (window: WindowHandle, codepoint: rune, mods: c.int);
-CursorEnterProc        :: #type proc "c" (window: WindowHandle, entered: c.int);
-JoystickProc           :: #type proc "c" (joy, event: c.int);
-
-ErrorProc              :: #type proc "c" (error: c.int, description: cstring);
+WindowIconifyProc      :: #type proc "c" (window: WindowHandle, iconified: c.int)
+WindowRefreshProc      :: #type proc "c" (window: WindowHandle)
+WindowFocusProc        :: #type proc "c" (window: WindowHandle, focused: c.int)
+WindowCloseProc        :: #type proc "c" (window: WindowHandle)
+WindowSizeProc         :: #type proc "c" (window: WindowHandle, width, height: c.int)
+WindowPosProc          :: #type proc "c" (window: WindowHandle, xpos, ypos: c.int)
+WindowMaximizeProc     :: #type proc "c" (window: WindowHandle, iconified: c.int) 
+WindowContentScaleProc :: #type proc "c" (window: WindowHandle, xscale, yscale: f32)
+FramebufferSizeProc    :: #type proc "c" (window: WindowHandle, width, height: c.int)
+DropProc               :: #type proc "c" (window: WindowHandle, count: c.int, paths: [^]cstring)
+MonitorProc            :: #type proc "c" (window: WindowHandle)
+
+KeyProc                :: #type proc "c" (window: WindowHandle, key, scancode, action, mods: c.int)
+MouseButtonProc        :: #type proc "c" (window: WindowHandle, button, action, mods: c.int)
+CursorPosProc          :: #type proc "c" (window: WindowHandle, xpos,  ypos: f64)
+ScrollProc             :: #type proc "c" (window: WindowHandle, xoffset, yoffset: f64)
+CharProc               :: #type proc "c" (window: WindowHandle, codepoint: rune)
+CharModsProc           :: #type proc "c" (window: WindowHandle, codepoint: rune, mods: c.int)
+CursorEnterProc        :: #type proc "c" (window: WindowHandle, entered: c.int)
+JoystickProc           :: #type proc "c" (joy, event: c.int)
+
+ErrorProc              :: #type proc "c" (error: c.int, description: cstring)

+ 297 - 297
vendor/glfw/constants.odin

@@ -2,371 +2,371 @@ package glfw
 
 /*** Constants ***/
 /* Versions */
-VERSION_MAJOR    :: 3;
-VERSION_MINOR    :: 3;
-VERSION_REVISION :: 4;
+VERSION_MAJOR    :: 3
+VERSION_MINOR    :: 3
+VERSION_REVISION :: 4
 
 /* Booleans */
-TRUE  :: true;
-FALSE :: false;
+TRUE  :: true
+FALSE :: false
 
 /* Button/Key states */
-RELEASE :: 0;
-PRESS   :: 1;
-REPEAT  :: 2;
+RELEASE :: 0
+PRESS   :: 1
+REPEAT  :: 2
 
 /* Joystick hat states. */
-HAT_CENTERED   :: 0;
-HAT_UP         :: 1;
-HAT_RIGHT      :: 2;
-HAT_DOWN       :: 4;
-HAT_LEFT       :: 8;
-HAT_RIGHT_UP   :: (HAT_RIGHT | HAT_UP);
-HAT_RIGHT_DOWN :: (HAT_RIGHT | HAT_DOWN);
-HAT_LEFT_UP    :: (HAT_LEFT  | HAT_UP);
-HAT_LEFT_DOWN  :: (HAT_LEFT  | HAT_DOWN);
+HAT_CENTERED   :: 0
+HAT_UP         :: 1
+HAT_RIGHT      :: 2
+HAT_DOWN       :: 4
+HAT_LEFT       :: 8
+HAT_RIGHT_UP   :: (HAT_RIGHT | HAT_UP)
+HAT_RIGHT_DOWN :: (HAT_RIGHT | HAT_DOWN)
+HAT_LEFT_UP    :: (HAT_LEFT  | HAT_UP)
+HAT_LEFT_DOWN  :: (HAT_LEFT  | HAT_DOWN)
 
 /* The unknown key */
-KEY_UNKNOWN :: -1;
+KEY_UNKNOWN :: -1
 
 /** Printable keys **/
 
 /* Named printable keys */
-KEY_SPACE         :: 32;
-KEY_APOSTROPHE    :: 39;  /* ' */
-KEY_COMMA         :: 44;  /* , */
-KEY_MINUS         :: 45;  /* - */
-KEY_PERIOD        :: 46;  /* . */
-KEY_SLASH         :: 47;  /* / */
-KEY_SEMICOLON     :: 59;  /* ; */
-KEY_EQUAL         :: 61;  /* :: */
-KEY_LEFT_BRACKET  :: 91;  /* [ */
-KEY_BACKSLASH     :: 92;  /* \ */
-KEY_RIGHT_BRACKET :: 93;  /* ] */
-KEY_GRAVE_ACCENT  :: 96;  /* ` */
-KEY_WORLD_1       :: 161; /* non-US #1 */
-KEY_WORLD_2       :: 162; /* non-US #2 */
+KEY_SPACE         :: 32
+KEY_APOSTROPHE    :: 39  /* ' */
+KEY_COMMA         :: 44  /* , */
+KEY_MINUS         :: 45  /* - */
+KEY_PERIOD        :: 46  /* . */
+KEY_SLASH         :: 47  /* / */
+KEY_SEMICOLON     :: 59  /* ; */
+KEY_EQUAL         :: 61  /* :: */
+KEY_LEFT_BRACKET  :: 91  /* [ */
+KEY_BACKSLASH     :: 92  /* \ */
+KEY_RIGHT_BRACKET :: 93  /* ] */
+KEY_GRAVE_ACCENT  :: 96  /* ` */
+KEY_WORLD_1       :: 161 /* non-US #1 */
+KEY_WORLD_2       :: 162 /* non-US #2 */
 
 /* Alphanumeric characters */
-KEY_0 :: 48;
-KEY_1 :: 49;
-KEY_2 :: 50;
-KEY_3 :: 51;
-KEY_4 :: 52;
-KEY_5 :: 53;
-KEY_6 :: 54;
-KEY_7 :: 55;
-KEY_8 :: 56;
-KEY_9 :: 57;
-
-KEY_A :: 65;
-KEY_B :: 66;
-KEY_C :: 67;
-KEY_D :: 68;
-KEY_E :: 69;
-KEY_F :: 70;
-KEY_G :: 71;
-KEY_H :: 72;
-KEY_I :: 73;
-KEY_J :: 74;
-KEY_K :: 75;
-KEY_L :: 76;
-KEY_M :: 77;
-KEY_N :: 78;
-KEY_O :: 79;
-KEY_P :: 80;
-KEY_Q :: 81;
-KEY_R :: 82;
-KEY_S :: 83;
-KEY_T :: 84;
-KEY_U :: 85;
-KEY_V :: 86;
-KEY_W :: 87;
-KEY_X :: 88;
-KEY_Y :: 89;
-KEY_Z :: 90;
+KEY_0 :: 48
+KEY_1 :: 49
+KEY_2 :: 50
+KEY_3 :: 51
+KEY_4 :: 52
+KEY_5 :: 53
+KEY_6 :: 54
+KEY_7 :: 55
+KEY_8 :: 56
+KEY_9 :: 57
+
+KEY_A :: 65
+KEY_B :: 66
+KEY_C :: 67
+KEY_D :: 68
+KEY_E :: 69
+KEY_F :: 70
+KEY_G :: 71
+KEY_H :: 72
+KEY_I :: 73
+KEY_J :: 74
+KEY_K :: 75
+KEY_L :: 76
+KEY_M :: 77
+KEY_N :: 78
+KEY_O :: 79
+KEY_P :: 80
+KEY_Q :: 81
+KEY_R :: 82
+KEY_S :: 83
+KEY_T :: 84
+KEY_U :: 85
+KEY_V :: 86
+KEY_W :: 87
+KEY_X :: 88
+KEY_Y :: 89
+KEY_Z :: 90
 
 
 /** Function keys **/
 
 /* Named non-printable keys */
-KEY_ESCAPE       :: 256;
-KEY_ENTER        :: 257;
-KEY_TAB          :: 258;
-KEY_BACKSPACE    :: 259;
-KEY_INSERT       :: 260;
-KEY_DELETE       :: 261;
-KEY_RIGHT        :: 262;
-KEY_LEFT         :: 263;
-KEY_DOWN         :: 264;
-KEY_UP           :: 265;
-KEY_PAGE_UP      :: 266;
-KEY_PAGE_DOWN    :: 267;
-KEY_HOME         :: 268;
-KEY_END          :: 269;
-KEY_CAPS_LOCK    :: 280;
-KEY_SCROLL_LOCK  :: 281;
-KEY_NUM_LOCK     :: 282;
-KEY_PRINT_SCREEN :: 283;
-KEY_PAUSE        :: 284;
+KEY_ESCAPE       :: 256
+KEY_ENTER        :: 257
+KEY_TAB          :: 258
+KEY_BACKSPACE    :: 259
+KEY_INSERT       :: 260
+KEY_DELETE       :: 261
+KEY_RIGHT        :: 262
+KEY_LEFT         :: 263
+KEY_DOWN         :: 264
+KEY_UP           :: 265
+KEY_PAGE_UP      :: 266
+KEY_PAGE_DOWN    :: 267
+KEY_HOME         :: 268
+KEY_END          :: 269
+KEY_CAPS_LOCK    :: 280
+KEY_SCROLL_LOCK  :: 281
+KEY_NUM_LOCK     :: 282
+KEY_PRINT_SCREEN :: 283
+KEY_PAUSE        :: 284
 
 /* Function keys */
-KEY_F1  :: 290;
-KEY_F2  :: 291;
-KEY_F3  :: 292;
-KEY_F4  :: 293;
-KEY_F5  :: 294;
-KEY_F6  :: 295;
-KEY_F7  :: 296;
-KEY_F8  :: 297;
-KEY_F9  :: 298;
-KEY_F10 :: 299;
-KEY_F11 :: 300;
-KEY_F12 :: 301;
-KEY_F13 :: 302;
-KEY_F14 :: 303;
-KEY_F15 :: 304;
-KEY_F16 :: 305;
-KEY_F17 :: 306;
-KEY_F18 :: 307;
-KEY_F19 :: 308;
-KEY_F20 :: 309;
-KEY_F21 :: 310;
-KEY_F22 :: 311;
-KEY_F23 :: 312;
-KEY_F24 :: 313;
-KEY_F25 :: 314;
+KEY_F1  :: 290
+KEY_F2  :: 291
+KEY_F3  :: 292
+KEY_F4  :: 293
+KEY_F5  :: 294
+KEY_F6  :: 295
+KEY_F7  :: 296
+KEY_F8  :: 297
+KEY_F9  :: 298
+KEY_F10 :: 299
+KEY_F11 :: 300
+KEY_F12 :: 301
+KEY_F13 :: 302
+KEY_F14 :: 303
+KEY_F15 :: 304
+KEY_F16 :: 305
+KEY_F17 :: 306
+KEY_F18 :: 307
+KEY_F19 :: 308
+KEY_F20 :: 309
+KEY_F21 :: 310
+KEY_F22 :: 311
+KEY_F23 :: 312
+KEY_F24 :: 313
+KEY_F25 :: 314
 
 /* Keypad numbers */
-KEY_KP_0 :: 320;
-KEY_KP_1 :: 321;
-KEY_KP_2 :: 322;
-KEY_KP_3 :: 323;
-KEY_KP_4 :: 324;
-KEY_KP_5 :: 325;
-KEY_KP_6 :: 326;
-KEY_KP_7 :: 327;
-KEY_KP_8 :: 328;
-KEY_KP_9 :: 329;
+KEY_KP_0 :: 320
+KEY_KP_1 :: 321
+KEY_KP_2 :: 322
+KEY_KP_3 :: 323
+KEY_KP_4 :: 324
+KEY_KP_5 :: 325
+KEY_KP_6 :: 326
+KEY_KP_7 :: 327
+KEY_KP_8 :: 328
+KEY_KP_9 :: 329
 
 /* Keypad named function keys */
-KEY_KP_DECIMAL  :: 330;
-KEY_KP_DIVIDE   :: 331;
-KEY_KP_MULTIPLY :: 332;
-KEY_KP_SUBTRACT :: 333;
-KEY_KP_ADD      :: 334;
-KEY_KP_ENTER    :: 335;
-KEY_KP_EQUAL    :: 336;
+KEY_KP_DECIMAL  :: 330
+KEY_KP_DIVIDE   :: 331
+KEY_KP_MULTIPLY :: 332
+KEY_KP_SUBTRACT :: 333
+KEY_KP_ADD      :: 334
+KEY_KP_ENTER    :: 335
+KEY_KP_EQUAL    :: 336
 
 /* Modifier keys */
-KEY_LEFT_SHIFT    :: 340;
-KEY_LEFT_CONTROL  :: 341;
-KEY_LEFT_ALT      :: 342;
-KEY_LEFT_SUPER    :: 343;
-KEY_RIGHT_SHIFT   :: 344;
-KEY_RIGHT_CONTROL :: 345;
-KEY_RIGHT_ALT     :: 346;
-KEY_RIGHT_SUPER   :: 347;
-KEY_MENU          :: 348;
-
-KEY_LAST :: KEY_MENU;
+KEY_LEFT_SHIFT    :: 340
+KEY_LEFT_CONTROL  :: 341
+KEY_LEFT_ALT      :: 342
+KEY_LEFT_SUPER    :: 343
+KEY_RIGHT_SHIFT   :: 344
+KEY_RIGHT_CONTROL :: 345
+KEY_RIGHT_ALT     :: 346
+KEY_RIGHT_SUPER   :: 347
+KEY_MENU          :: 348
+
+KEY_LAST :: KEY_MENU
 
 /* Bitmask for modifier keys */
-MOD_SHIFT     :: 0x0001;
-MOD_CONTROL   :: 0x0002;
-MOD_ALT       :: 0x0004;
-MOD_SUPER     :: 0x0008;
-MOD_CAPS_LOCK :: 0x0010;
-MOD_NUM_LOCK  :: 0x0020;
+MOD_SHIFT     :: 0x0001
+MOD_CONTROL   :: 0x0002
+MOD_ALT       :: 0x0004
+MOD_SUPER     :: 0x0008
+MOD_CAPS_LOCK :: 0x0010
+MOD_NUM_LOCK  :: 0x0020
 
 /* Mouse buttons */
-MOUSE_BUTTON_1 :: 0;
-MOUSE_BUTTON_2 :: 1;
-MOUSE_BUTTON_3 :: 2;
-MOUSE_BUTTON_4 :: 3;
-MOUSE_BUTTON_5 :: 4;
-MOUSE_BUTTON_6 :: 5;
-MOUSE_BUTTON_7 :: 6;
-MOUSE_BUTTON_8 :: 7;
+MOUSE_BUTTON_1 :: 0
+MOUSE_BUTTON_2 :: 1
+MOUSE_BUTTON_3 :: 2
+MOUSE_BUTTON_4 :: 3
+MOUSE_BUTTON_5 :: 4
+MOUSE_BUTTON_6 :: 5
+MOUSE_BUTTON_7 :: 6
+MOUSE_BUTTON_8 :: 7
 
 /* Mousebutton aliases */
-MOUSE_BUTTON_LAST   :: MOUSE_BUTTON_8;
-MOUSE_BUTTON_LEFT   :: MOUSE_BUTTON_1;
-MOUSE_BUTTON_RIGHT  :: MOUSE_BUTTON_2;
-MOUSE_BUTTON_MIDDLE :: MOUSE_BUTTON_3;
+MOUSE_BUTTON_LAST   :: MOUSE_BUTTON_8
+MOUSE_BUTTON_LEFT   :: MOUSE_BUTTON_1
+MOUSE_BUTTON_RIGHT  :: MOUSE_BUTTON_2
+MOUSE_BUTTON_MIDDLE :: MOUSE_BUTTON_3
 
 /* Joystick buttons */
-JOYSTICK_1  :: 0;
-JOYSTICK_2  :: 1;
-JOYSTICK_3  :: 2;
-JOYSTICK_4  :: 3;
-JOYSTICK_5  :: 4;
-JOYSTICK_6  :: 5;
-JOYSTICK_7  :: 6;
-JOYSTICK_8  :: 7;
-JOYSTICK_9  :: 8;
-JOYSTICK_10 :: 9;
-JOYSTICK_11 :: 10;
-JOYSTICK_12 :: 11;
-JOYSTICK_13 :: 12;
-JOYSTICK_14 :: 13;
-JOYSTICK_15 :: 14;
-JOYSTICK_16 :: 15;
-
-JOYSTICK_LAST :: JOYSTICK_16;
+JOYSTICK_1  :: 0
+JOYSTICK_2  :: 1
+JOYSTICK_3  :: 2
+JOYSTICK_4  :: 3
+JOYSTICK_5  :: 4
+JOYSTICK_6  :: 5
+JOYSTICK_7  :: 6
+JOYSTICK_8  :: 7
+JOYSTICK_9  :: 8
+JOYSTICK_10 :: 9
+JOYSTICK_11 :: 10
+JOYSTICK_12 :: 11
+JOYSTICK_13 :: 12
+JOYSTICK_14 :: 13
+JOYSTICK_15 :: 14
+JOYSTICK_16 :: 15
+
+JOYSTICK_LAST :: JOYSTICK_16
 
 /* Gamepad buttons */
-GAMEPAD_BUTTON_A            :: 0;
-GAMEPAD_BUTTON_B            :: 1;
-GAMEPAD_BUTTON_X            :: 2;
-GAMEPAD_BUTTON_Y            :: 3;
-GAMEPAD_BUTTON_LEFT_BUMPER  :: 4;
-GAMEPAD_BUTTON_RIGHT_BUMPER :: 5;
-GAMEPAD_BUTTON_BACK         :: 6;
-GAMEPAD_BUTTON_START        :: 7;
-GAMEPAD_BUTTON_GUIDE        :: 8;
-GAMEPAD_BUTTON_LEFT_THUMB   :: 9;
-GAMEPAD_BUTTON_RIGHT_THUMB  :: 10;
-GAMEPAD_BUTTON_DPAD_UP      :: 11;
-GAMEPAD_BUTTON_DPAD_RIGHT   :: 12;
-GAMEPAD_BUTTON_DPAD_DOWN    :: 13;
-GAMEPAD_BUTTON_DPAD_LEFT    :: 14;
-GAMEPAD_BUTTON_LAST         :: GAMEPAD_BUTTON_DPAD_LEFT;
-
-GAMEPAD_BUTTON_CROSS    :: GAMEPAD_BUTTON_A;
-GAMEPAD_BUTTON_CIRCLE   :: GAMEPAD_BUTTON_B;
-GAMEPAD_BUTTON_SQUARE   :: GAMEPAD_BUTTON_X;
-GAMEPAD_BUTTON_TRIANGLE :: GAMEPAD_BUTTON_Y;
+GAMEPAD_BUTTON_A            :: 0
+GAMEPAD_BUTTON_B            :: 1
+GAMEPAD_BUTTON_X            :: 2
+GAMEPAD_BUTTON_Y            :: 3
+GAMEPAD_BUTTON_LEFT_BUMPER  :: 4
+GAMEPAD_BUTTON_RIGHT_BUMPER :: 5
+GAMEPAD_BUTTON_BACK         :: 6
+GAMEPAD_BUTTON_START        :: 7
+GAMEPAD_BUTTON_GUIDE        :: 8
+GAMEPAD_BUTTON_LEFT_THUMB   :: 9
+GAMEPAD_BUTTON_RIGHT_THUMB  :: 10
+GAMEPAD_BUTTON_DPAD_UP      :: 11
+GAMEPAD_BUTTON_DPAD_RIGHT   :: 12
+GAMEPAD_BUTTON_DPAD_DOWN    :: 13
+GAMEPAD_BUTTON_DPAD_LEFT    :: 14
+GAMEPAD_BUTTON_LAST         :: GAMEPAD_BUTTON_DPAD_LEFT
+
+GAMEPAD_BUTTON_CROSS    :: GAMEPAD_BUTTON_A
+GAMEPAD_BUTTON_CIRCLE   :: GAMEPAD_BUTTON_B
+GAMEPAD_BUTTON_SQUARE   :: GAMEPAD_BUTTON_X
+GAMEPAD_BUTTON_TRIANGLE :: GAMEPAD_BUTTON_Y
 
 /* Gamepad axes */
-GAMEPAD_AXIS_LEFT_X        :: 0;
-GAMEPAD_AXIS_LEFT_Y        :: 1;
-GAMEPAD_AXIS_RIGHT_X       :: 2;
-GAMEPAD_AXIS_RIGHT_Y       :: 3;
-GAMEPAD_AXIS_LEFT_TRIGGER  :: 4;
-GAMEPAD_AXIS_RIGHT_TRIGGER :: 5;
-GAMEPAD_AXIS_LAST          :: GAMEPAD_AXIS_RIGHT_TRIGGER;
+GAMEPAD_AXIS_LEFT_X        :: 0
+GAMEPAD_AXIS_LEFT_Y        :: 1
+GAMEPAD_AXIS_RIGHT_X       :: 2
+GAMEPAD_AXIS_RIGHT_Y       :: 3
+GAMEPAD_AXIS_LEFT_TRIGGER  :: 4
+GAMEPAD_AXIS_RIGHT_TRIGGER :: 5
+GAMEPAD_AXIS_LAST          :: GAMEPAD_AXIS_RIGHT_TRIGGER
 
 /* Error constants */
-NO_ERROR            :: 0x00000000;
-NOT_INITIALIZED     :: 0x00010001;
-NO_CURRENT_CONTEXT  :: 0x00010002;
-INVALID_ENUM        :: 0x00010003;
-INVALID_VALUE       :: 0x00010004;
-OUT_OF_MEMORY       :: 0x00010005;
-API_UNAVAILABLE     :: 0x00010006;
-VERSION_UNAVAILABLE :: 0x00010007;
-PLATFORM_ERROR      :: 0x00010008;
-FORMAT_UNAVAILABLE  :: 0x00010009;
-NO_WINDOW_CONTEXT   :: 0x0001000A;
+NO_ERROR            :: 0x00000000
+NOT_INITIALIZED     :: 0x00010001
+NO_CURRENT_CONTEXT  :: 0x00010002
+INVALID_ENUM        :: 0x00010003
+INVALID_VALUE       :: 0x00010004
+OUT_OF_MEMORY       :: 0x00010005
+API_UNAVAILABLE     :: 0x00010006
+VERSION_UNAVAILABLE :: 0x00010007
+PLATFORM_ERROR      :: 0x00010008
+FORMAT_UNAVAILABLE  :: 0x00010009
+NO_WINDOW_CONTEXT   :: 0x0001000A
 
 /* Window attributes */
-FOCUSED                 :: 0x00020001;
-ICONIFIED               :: 0x00020002;
-RESIZABLE               :: 0x00020003;
-VISIBLE                 :: 0x00020004;
-DECORATED               :: 0x00020005;
-AUTO_ICONIFY            :: 0x00020006;
-FLOATING                :: 0x00020007;
-MAXIMIZED               :: 0x00020008;
-CENTER_CURSOR           :: 0x00020009;
-TRANSPARENT_FRAMEBUFFER :: 0x0002000A;
-HOVERED                 :: 0x0002000B;
-FOCUS_ON_SHOW           :: 0x0002000C;
+FOCUSED                 :: 0x00020001
+ICONIFIED               :: 0x00020002
+RESIZABLE               :: 0x00020003
+VISIBLE                 :: 0x00020004
+DECORATED               :: 0x00020005
+AUTO_ICONIFY            :: 0x00020006
+FLOATING                :: 0x00020007
+MAXIMIZED               :: 0x00020008
+CENTER_CURSOR           :: 0x00020009
+TRANSPARENT_FRAMEBUFFER :: 0x0002000A
+HOVERED                 :: 0x0002000B
+FOCUS_ON_SHOW           :: 0x0002000C
 
 /* Pixel window attributes */
-RED_BITS         :: 0x00021001;
-GREEN_BITS       :: 0x00021002;
-BLUE_BITS        :: 0x00021003;
-ALPHA_BITS       :: 0x00021004;
-DEPTH_BITS       :: 0x00021005;
-STENCIL_BITS     :: 0x00021006;
-ACCUM_RED_BITS   :: 0x00021007;
-ACCUM_GREEN_BITS :: 0x00021008;
-ACCUM_BLUE_BITS  :: 0x00021009;
-ACCUM_ALPHA_BITS :: 0x0002100A;
-AUX_BUFFERS      :: 0x0002100B;
-STEREO           :: 0x0002100C;
-SAMPLES          :: 0x0002100D;
-SRGB_CAPABLE     :: 0x0002100E;
-REFRESH_RATE     :: 0x0002100F;
-DOUBLEBUFFER     :: 0x00021010;
+RED_BITS         :: 0x00021001
+GREEN_BITS       :: 0x00021002
+BLUE_BITS        :: 0x00021003
+ALPHA_BITS       :: 0x00021004
+DEPTH_BITS       :: 0x00021005
+STENCIL_BITS     :: 0x00021006
+ACCUM_RED_BITS   :: 0x00021007
+ACCUM_GREEN_BITS :: 0x00021008
+ACCUM_BLUE_BITS  :: 0x00021009
+ACCUM_ALPHA_BITS :: 0x0002100A
+AUX_BUFFERS      :: 0x0002100B
+STEREO           :: 0x0002100C
+SAMPLES          :: 0x0002100D
+SRGB_CAPABLE     :: 0x0002100E
+REFRESH_RATE     :: 0x0002100F
+DOUBLEBUFFER     :: 0x00021010
 
 /* Context window attributes */
-CLIENT_API               :: 0x00022001;
-CONTEXT_VERSION_MAJOR    :: 0x00022002;
-CONTEXT_VERSION_MINOR    :: 0x00022003;
-CONTEXT_REVISION         :: 0x00022004;
-CONTEXT_ROBUSTNESS       :: 0x00022005;
-OPENGL_FORWARD_COMPAT    :: 0x00022006;
-OPENGL_DEBUG_CONTEXT     :: 0x00022007;
-OPENGL_PROFILE           :: 0x00022008;
-CONTEXT_RELEASE_BEHAVIOR :: 0x00022009;
-CONTEXT_NO_ERROR         :: 0x0002200A;
-CONTEXT_CREATION_API     :: 0x0002200B;
-SCALE_TO_MONITOR         :: 0x0002200C;
+CLIENT_API               :: 0x00022001
+CONTEXT_VERSION_MAJOR    :: 0x00022002
+CONTEXT_VERSION_MINOR    :: 0x00022003
+CONTEXT_REVISION         :: 0x00022004
+CONTEXT_ROBUSTNESS       :: 0x00022005
+OPENGL_FORWARD_COMPAT    :: 0x00022006
+OPENGL_DEBUG_CONTEXT     :: 0x00022007
+OPENGL_PROFILE           :: 0x00022008
+CONTEXT_RELEASE_BEHAVIOR :: 0x00022009
+CONTEXT_NO_ERROR         :: 0x0002200A
+CONTEXT_CREATION_API     :: 0x0002200B
+SCALE_TO_MONITOR         :: 0x0002200C
 
 /* Cross platform attributes */
-COCOA_RETINA_FRAMEBUFFER :: 0x00023001;
-COCOA_FRAME_NAME         :: 0x00023002;
-COCOA_GRAPHICS_SWITCHING :: 0x00023003;
-X11_CLASS_NAME           :: 0x00024001;
-X11_INSTANCE_NAME        :: 0x00024002;
+COCOA_RETINA_FRAMEBUFFER :: 0x00023001
+COCOA_FRAME_NAME         :: 0x00023002
+COCOA_GRAPHICS_SWITCHING :: 0x00023003
+X11_CLASS_NAME           :: 0x00024001
+X11_INSTANCE_NAME        :: 0x00024002
 
 /* APIs */
-NO_API        :: 0;
-OPENGL_API    :: 0x00030001;
-OPENGL_ES_API :: 0x00030002;
+NO_API        :: 0
+OPENGL_API    :: 0x00030001
+OPENGL_ES_API :: 0x00030002
 
 /* Robustness? */
-NO_ROBUSTNESS         :: 0;
-NO_RESET_NOTIFICATION :: 0x00031001;
-LOSE_CONTEXT_ON_RESET :: 0x00031002;
+NO_ROBUSTNESS         :: 0
+NO_RESET_NOTIFICATION :: 0x00031001
+LOSE_CONTEXT_ON_RESET :: 0x00031002
 
 /* OpenGL Profiles */
-OPENGL_ANY_PROFILE    :: 0;
-OPENGL_CORE_PROFILE   :: 0x00032001;
-OPENGL_COMPAT_PROFILE :: 0x00032002;
+OPENGL_ANY_PROFILE    :: 0
+OPENGL_CORE_PROFILE   :: 0x00032001
+OPENGL_COMPAT_PROFILE :: 0x00032002
 
 /* Cursor draw state and whether keys are sticky */
-CURSOR               :: 0x00033001;
-STICKY_KEYS          :: 0x00033002;
-STICKY_MOUSE_BUTTONS :: 0x00033003;
-LOCK_KEY_MODS        :: 0x00033004;
+CURSOR               :: 0x00033001
+STICKY_KEYS          :: 0x00033002
+STICKY_MOUSE_BUTTONS :: 0x00033003
+LOCK_KEY_MODS        :: 0x00033004
 
 /* Cursor draw state */
-CURSOR_NORMAL   :: 0x00034001;
-CURSOR_HIDDEN   :: 0x00034002;
-CURSOR_DISABLED :: 0x00034003;
+CURSOR_NORMAL   :: 0x00034001
+CURSOR_HIDDEN   :: 0x00034002
+CURSOR_DISABLED :: 0x00034003
 
 /* Behavior? */
-ANY_RELEASE_BEHAVIOR   :: 0;
-RELEASE_BEHAVIOR_FLUSH :: 0x00035001;
-RELEASE_BEHAVIOR_NONE  :: 0x00035002;
+ANY_RELEASE_BEHAVIOR   :: 0
+RELEASE_BEHAVIOR_FLUSH :: 0x00035001
+RELEASE_BEHAVIOR_NONE  :: 0x00035002
 
 /* Context API ? */
-NATIVE_CONTEXT_API :: 0x00036001;
-EGL_CONTEXT_API    :: 0x00036002;
-OSMESA_CONTEXT_API :: 0x00036003;
+NATIVE_CONTEXT_API :: 0x00036001
+EGL_CONTEXT_API    :: 0x00036002
+OSMESA_CONTEXT_API :: 0x00036003
 
 /* Types of cursors */
-ARROW_CURSOR       :: 0x00036001;
-IBEAM_CURSOR       :: 0x00036002;
-CROSSHAIR_CURSOR   :: 0x00036003;
-HAND_CURSOR        :: 0x00036004;
-HRESIZE_CURSOR     :: 0x00036005;
-VRESIZE_CURSOR     :: 0x00036006;
-RESIZE_NWSE_CURSOR :: 0x00036007;
-RESIZE_NESW_CURSOR :: 0x00036008;
+ARROW_CURSOR       :: 0x00036001
+IBEAM_CURSOR       :: 0x00036002
+CROSSHAIR_CURSOR   :: 0x00036003
+HAND_CURSOR        :: 0x00036004
+HRESIZE_CURSOR     :: 0x00036005
+VRESIZE_CURSOR     :: 0x00036006
+RESIZE_NWSE_CURSOR :: 0x00036007
+RESIZE_NESW_CURSOR :: 0x00036008
 
 /* Joystick? */
-CONNECTED    :: 0x00040001;
-DISCONNECTED :: 0x00040002;
+CONNECTED    :: 0x00040001
+DISCONNECTED :: 0x00040002
 
 /*  macOS specific init hint. */
-JOYSTICK_HAT_BUTTONS  :: 0x00050001;
-COCOA_CHDIR_RESOURCES :: 0x00051001;
-COCOA_MENUBAR         :: 0x00051002;
+JOYSTICK_HAT_BUTTONS  :: 0x00050001
+COCOA_CHDIR_RESOURCES :: 0x00051001
+COCOA_MENUBAR         :: 0x00051002
 
 /*  */
-DONT_CARE :: -1;
+DONT_CARE :: -1

+ 27 - 27
vendor/glfw/types.odin

@@ -2,35 +2,35 @@ package glfw
 
 import glfw "bindings"
 
-WindowHandle  :: glfw.WindowHandle;
-MonitorHandle :: glfw.MonitorHandle;
-CursorHandle  :: glfw.CursorHandle;
+WindowHandle  :: glfw.WindowHandle
+MonitorHandle :: glfw.MonitorHandle
+CursorHandle  :: glfw.CursorHandle
 
-VidMode :: glfw.VidMode;
-GammaRamp :: glfw.GammaRamp;
-Image :: glfw.Image;
-GamepadState :: glfw.GamepadState;
+VidMode :: glfw.VidMode
+GammaRamp :: glfw.GammaRamp
+Image :: glfw.Image
+GamepadState :: glfw.GamepadState
 
 /*** Procedure type declarations ***/
-WindowIconifyProc      :: glfw.WindowIconifyProc;
-WindowRefreshProc      :: glfw.WindowRefreshProc;
-WindowFocusProc        :: glfw.WindowFocusProc;
-WindowCloseProc        :: glfw.WindowCloseProc;
-WindowSizeProc         :: glfw.WindowSizeProc;
-WindowPosProc          :: glfw.WindowPosProc;
-WindowMaximizeProc     :: glfw.WindowMaximizeProc;
-WindowContentScaleProc :: glfw.WindowContentScaleProc;
-FramebufferSizeProc    :: glfw.FramebufferSizeProc;
-DropProc               :: glfw.DropProc;
-MonitorProc            :: glfw.MonitorProc;
+WindowIconifyProc      :: glfw.WindowIconifyProc
+WindowRefreshProc      :: glfw.WindowRefreshProc
+WindowFocusProc        :: glfw.WindowFocusProc
+WindowCloseProc        :: glfw.WindowCloseProc
+WindowSizeProc         :: glfw.WindowSizeProc
+WindowPosProc          :: glfw.WindowPosProc
+WindowMaximizeProc     :: glfw.WindowMaximizeProc
+WindowContentScaleProc :: glfw.WindowContentScaleProc
+FramebufferSizeProc    :: glfw.FramebufferSizeProc
+DropProc               :: glfw.DropProc
+MonitorProc            :: glfw.MonitorProc
 
-KeyProc                :: glfw.KeyProc;
-MouseButtonProc        :: glfw.MouseButtonProc;
-CursorPosProc          :: glfw.CursorPosProc;
-ScrollProc             :: glfw.ScrollProc;
-CharProc               :: glfw.CharProc;
-CharModsProc           :: glfw.CharModsProc;
-CursorEnterProc        :: glfw.CursorEnterProc;
-JoystickProc           :: glfw.JoystickProc;
+KeyProc                :: glfw.KeyProc
+MouseButtonProc        :: glfw.MouseButtonProc
+CursorPosProc          :: glfw.CursorPosProc
+ScrollProc             :: glfw.ScrollProc
+CharProc               :: glfw.CharProc
+CharModsProc           :: glfw.CharModsProc
+CursorEnterProc        :: glfw.CursorEnterProc
+JoystickProc           :: glfw.JoystickProc
 
-ErrorProc              :: glfw.ErrorProc;
+ErrorProc              :: glfw.ErrorProc

+ 147 - 147
vendor/glfw/wrapper.odin

@@ -3,229 +3,229 @@ package glfw
 import "core:c"
 import glfw "bindings"
 
-Init      :: glfw.Init;
-Terminate :: glfw.Terminate;
+Init      :: glfw.Init
+Terminate :: glfw.Terminate
 
-InitHint  :: glfw.InitHint;
+InitHint  :: glfw.InitHint
 
 GetVersion :: proc "c" () -> (major, minor, rev: c.int) {
-	glfw.GetVersion(&major, &minor, &rev);
-	return;
+	glfw.GetVersion(&major, &minor, &rev)
+	return
 }
 GetError :: proc "c" () -> (description: string, code: c.int) {
-	desc: cstring;
-	code = glfw.GetError(&desc);
-	description = string(desc);
-	return;
+	desc: cstring
+	code = glfw.GetError(&desc)
+	description = string(desc)
+	return
 }
 
-GetPrimaryMonitor :: glfw.GetPrimaryMonitor;
+GetPrimaryMonitor :: glfw.GetPrimaryMonitor
 GetMonitors :: proc "c" () -> []MonitorHandle {
-	count: c.int;
-	monitors := glfw.GetMonitors(&count);
-	return monitors[:count];
+	count: c.int
+	monitors := glfw.GetMonitors(&count)
+	return monitors[:count]
 }
 GetMonitorPos :: proc "c" (monitor: MonitorHandle) -> (xpos, ypos: c.int) {
-	glfw.GetMonitorPos(monitor, &xpos, &ypos);
-	return;
+	glfw.GetMonitorPos(monitor, &xpos, &ypos)
+	return
 }
 GetMonitorPhysicalSize :: proc "c" (monitor: MonitorHandle) -> (widthMM, heightMM: c.int) {
-	glfw.GetMonitorPhysicalSize(monitor, &widthMM, &heightMM);
-	return;
+	glfw.GetMonitorPhysicalSize(monitor, &widthMM, &heightMM)
+	return
 }
 GetMonitorContentScale :: proc "c" (monitor: MonitorHandle) -> (xscale, yscale: f32) {
-	glfw.GetMonitorContentScale(monitor, &xscale, &yscale);
-	return;
+	glfw.GetMonitorContentScale(monitor, &xscale, &yscale)
+	return
 }
 
-SetMonitorUserPointer :: glfw.SetMonitorUserPointer;
-GetMonitorUserPointer :: glfw.GetMonitorUserPointer;
+SetMonitorUserPointer :: glfw.SetMonitorUserPointer
+GetMonitorUserPointer :: glfw.GetMonitorUserPointer
 
-GetVideoMode :: glfw.GetVideoMode;
-SetGamma     :: glfw.SetGamma;
-GetGammaRamp :: glfw.GetGammaRamp;
-SetGammaRamp :: glfw.SetGammaRamp;
+GetVideoMode :: glfw.GetVideoMode
+SetGamma     :: glfw.SetGamma
+GetGammaRamp :: glfw.GetGammaRamp
+SetGammaRamp :: glfw.SetGammaRamp
 
-CreateWindow  :: glfw.CreateWindow;
-DestroyWindow :: glfw.DestroyWindow;
+CreateWindow  :: glfw.CreateWindow
+DestroyWindow :: glfw.DestroyWindow
 
-WindowHint         :: glfw.WindowHint;
-DefaultWindowHints :: glfw.DefaultWindowHints;
-WindowHintString   :: glfw.WindowHintString;
-WindowShouldClose  :: glfw.WindowShouldClose;
+WindowHint         :: glfw.WindowHint
+DefaultWindowHints :: glfw.DefaultWindowHints
+WindowHintString   :: glfw.WindowHintString
+WindowShouldClose  :: glfw.WindowShouldClose
 
-SwapInterval :: glfw.SwapInterval;
-SwapBuffers  :: glfw.SwapBuffers;
+SwapInterval :: glfw.SwapInterval
+SwapBuffers  :: glfw.SwapBuffers
 
-SetWindowTitle :: glfw.SetWindowTitle;
+SetWindowTitle :: glfw.SetWindowTitle
 SetWindowIcon :: proc "c" (window: WindowHandle, images: []Image) {
-	glfw.SetWindowIcon(window, c.int(len(images)), raw_data(images));
+	glfw.SetWindowIcon(window, c.int(len(images)), raw_data(images))
 }
-SetWindowPos         :: glfw.SetWindowPos;
-SetWindowSizeLimits  :: glfw.SetWindowSizeLimits;
-SetWindowAspectRatio :: glfw.SetWindowAspectRatio;
-SetWindowSize        :: glfw.SetWindowSize;
+SetWindowPos         :: glfw.SetWindowPos
+SetWindowSizeLimits  :: glfw.SetWindowSizeLimits
+SetWindowAspectRatio :: glfw.SetWindowAspectRatio
+SetWindowSize        :: glfw.SetWindowSize
 GetWindowPos :: proc "c" (window: WindowHandle) -> (xpos, ypos: c.int) {
-	glfw.GetWindowPos(window, &xpos, &ypos);
-	return;
+	glfw.GetWindowPos(window, &xpos, &ypos)
+	return
 }
 GetWindowSize :: proc "c" (window: WindowHandle) -> (width, height: c.int) {
-	glfw.GetWindowSize(window, &width, &height);
-	return;
+	glfw.GetWindowSize(window, &width, &height)
+	return
 }
 GetFramebufferSize :: proc "c" (window: WindowHandle) -> (width, height: c.int) {
-	glfw.GetFramebufferSize(window, &width, &height);
-	return;
+	glfw.GetFramebufferSize(window, &width, &height)
+	return
 }
 GetWindowFrameSize :: proc "c" (window: WindowHandle) -> (left, top, right, bottom: c.int) {
-	glfw.GetWindowFrameSize(window, &left, &top, &right, &bottom);
-	return;
+	glfw.GetWindowFrameSize(window, &left, &top, &right, &bottom)
+	return
 }
 
 GetWindowContentScale :: proc "c" (window: WindowHandle) -> (xscale, yscale: f32) {
-	glfw.GetWindowContentScale(window, &xscale, &yscale);
-	return;
+	glfw.GetWindowContentScale(window, &xscale, &yscale)
+	return
 }
-GetWindowOpacity :: glfw.GetWindowOpacity;
-SetWindowOpacity :: glfw.SetWindowOpacity;
+GetWindowOpacity :: glfw.GetWindowOpacity
+SetWindowOpacity :: glfw.SetWindowOpacity
 
 GetVersionString :: proc "c" () -> string {
-	return string(glfw.GetVersionString());
+	return string(glfw.GetVersionString())
 }
 GetMonitorName :: proc "c" (monitor: MonitorHandle) -> string {
-	return string(glfw.GetMonitorName(monitor));
+	return string(glfw.GetMonitorName(monitor))
 }
 GetClipboardString :: proc "c" (window: WindowHandle) -> string {
-	return string(glfw.GetClipboardString(window));
+	return string(glfw.GetClipboardString(window))
 }
 GetVideoModes :: proc "c" (monitor: MonitorHandle) -> []VidMode {
-	count: c.int;
-	modes := glfw.GetVideoModes(monitor, &count);
-	return modes[:count];
+	count: c.int
+	modes := glfw.GetVideoModes(monitor, &count)
+	return modes[:count]
 }
 
-GetKey :: glfw.GetKey;
+GetKey :: glfw.GetKey
 GetKeyName :: proc "c" (key, scancode: c.int) -> string {
-	return string(glfw.GetKeyName(key, scancode));
+	return string(glfw.GetKeyName(key, scancode))
 }
-SetWindowShouldClose :: glfw.SetWindowShouldClose;
-JoystickPresent      :: glfw.JoystickPresent;
+SetWindowShouldClose :: glfw.SetWindowShouldClose
+JoystickPresent      :: glfw.JoystickPresent
 GetJoystickName :: proc "c" (joy: c.int) -> string {
-	return string(glfw.GetJoystickName(joy));
+	return string(glfw.GetJoystickName(joy))
 }
-GetKeyScancode :: glfw.GetKeyScancode;
+GetKeyScancode :: glfw.GetKeyScancode
 
-IconifyWindow  :: glfw.IconifyWindow;
-RestoreWindow  :: glfw.RestoreWindow;
-MaximizeWindow :: glfw.MaximizeWindow;
-ShowWindow     :: glfw.ShowWindow;
-HideWindow     :: glfw.HideWindow;
-FocusWindow    :: glfw.FocusWindow;
+IconifyWindow  :: glfw.IconifyWindow
+RestoreWindow  :: glfw.RestoreWindow
+MaximizeWindow :: glfw.MaximizeWindow
+ShowWindow     :: glfw.ShowWindow
+HideWindow     :: glfw.HideWindow
+FocusWindow    :: glfw.FocusWindow
 
-RequestWindowAttention :: glfw.RequestWindowAttention;
+RequestWindowAttention :: glfw.RequestWindowAttention
 
-GetWindowMonitor     :: glfw.GetWindowMonitor;
-SetWindowMonitor     :: glfw.SetWindowMonitor;
-GetWindowAttrib      :: glfw.GetWindowAttrib;
-SetWindowUserPointer :: glfw.SetWindowUserPointer;
-GetWindowUserPointer :: glfw.GetWindowUserPointer;
+GetWindowMonitor     :: glfw.GetWindowMonitor
+SetWindowMonitor     :: glfw.SetWindowMonitor
+GetWindowAttrib      :: glfw.GetWindowAttrib
+SetWindowUserPointer :: glfw.SetWindowUserPointer
+GetWindowUserPointer :: glfw.GetWindowUserPointer
 
-SetWindowAttrib :: glfw.SetWindowAttrib;
+SetWindowAttrib :: glfw.SetWindowAttrib
 
-PollEvents        :: glfw.PollEvents;
-WaitEvents        :: glfw.WaitEvents;
-WaitEventsTimeout :: glfw.WaitEventsTimeout;
-PostEmptyEvent    :: glfw.PostEmptyEvent;
+PollEvents        :: glfw.PollEvents
+WaitEvents        :: glfw.WaitEvents
+WaitEventsTimeout :: glfw.WaitEventsTimeout
+PostEmptyEvent    :: glfw.PostEmptyEvent
 
-GetInputMode :: glfw.GetInputMode;
-SetInputMode :: glfw.SetInputMode;
+GetInputMode :: glfw.GetInputMode
+SetInputMode :: glfw.SetInputMode
 
-GetMouseButton :: glfw.GetMouseButton;
+GetMouseButton :: glfw.GetMouseButton
 GetCursorPos :: proc "c" (window: WindowHandle) -> (xpos, ypos: f64) {
-	glfw.GetCursorPos(window, &xpos, &ypos);
-	return;
+	glfw.GetCursorPos(window, &xpos, &ypos)
+	return
 }
-SetCursorPos :: glfw.SetCursorPos;
+SetCursorPos :: glfw.SetCursorPos
 
-CreateCursor         :: glfw.CreateCursor;
-DestroyCursor        :: glfw.DestroyCursor;
-SetCursor            :: glfw.SetCursor;
-CreateStandardCursor :: glfw.CreateStandardCursor;
+CreateCursor         :: glfw.CreateCursor
+DestroyCursor        :: glfw.DestroyCursor
+SetCursor            :: glfw.SetCursor
+CreateStandardCursor :: glfw.CreateStandardCursor
 
 GetJoystickAxes :: proc "c" (joy: c.int) -> []f32 {
-	count: c.int;
-	axes := glfw.GetJoystickAxes(joy, &count);
-	return axes[:count];
+	count: c.int
+	axes := glfw.GetJoystickAxes(joy, &count)
+	return axes[:count]
 }
 GetJoystickButtons :: proc "c" (joy: c.int) -> []u8 {
-	count: c.int;
-	buttons := glfw.GetJoystickButtons(joy, &count);
-	return buttons[:count];
+	count: c.int
+	buttons := glfw.GetJoystickButtons(joy, &count)
+	return buttons[:count]
 }
 GetJoystickHats :: proc "c" (jid: c.int) -> []u8 {
-	count: c.int;
-	hats := glfw.GetJoystickHats(jid, &count);
-	return hats[:count];
+	count: c.int
+	hats := glfw.GetJoystickHats(jid, &count)
+	return hats[:count]
 }
 GetJoystickGUID :: proc "c" (jid: c.int) -> string {
-	return string(glfw.GetJoystickGUID(jid));
+	return string(glfw.GetJoystickGUID(jid))
 }
-SetJoystickUserPointer :: glfw.SetJoystickUserPointer;
-GetJoystickUserPointer :: glfw.GetJoystickUserPointer;
-JoystickIsGamepad      :: glfw.JoystickIsGamepad;
-UpdateGamepadMappings  :: glfw.UpdateGamepadMappings;
+SetJoystickUserPointer :: glfw.SetJoystickUserPointer
+GetJoystickUserPointer :: glfw.GetJoystickUserPointer
+JoystickIsGamepad      :: glfw.JoystickIsGamepad
+UpdateGamepadMappings  :: glfw.UpdateGamepadMappings
 GetGamepadName :: proc "c" (jid: c.int) -> string {
-	return string(glfw.GetGamepadName(jid));
+	return string(glfw.GetGamepadName(jid))
 }
-GetGamepadState    :: glfw.GetGamepadState;
+GetGamepadState    :: glfw.GetGamepadState
 
-SetClipboardString :: glfw.SetClipboardString;
+SetClipboardString :: glfw.SetClipboardString
 
-SetTime            :: glfw.SetTime;
-GetTime            :: glfw.GetTime;
-GetTimerValue      :: glfw.GetTimerValue;
-GetTimerFrequency  :: glfw.GetTimerFrequency;
+SetTime            :: glfw.SetTime
+GetTime            :: glfw.GetTime
+GetTimerValue      :: glfw.GetTimerValue
+GetTimerFrequency  :: glfw.GetTimerFrequency
 
-MakeContextCurrent :: glfw.MakeContextCurrent;
-GetCurrentContext  :: glfw.GetCurrentContext;
-GetProcAddress     :: glfw.GetProcAddress;
-ExtensionSupported :: glfw.ExtensionSupported;
+MakeContextCurrent :: glfw.MakeContextCurrent
+GetCurrentContext  :: glfw.GetCurrentContext
+GetProcAddress     :: glfw.GetProcAddress
+ExtensionSupported :: glfw.ExtensionSupported
 
-VulkanSupported :: glfw.VulkanSupported;
+VulkanSupported :: glfw.VulkanSupported
 GetRequiredInstanceExtensions :: proc "c" () -> []cstring {
-	count: u32;
-	exts := glfw.GetRequiredInstanceExtensions(&count);
-	return exts[:count];
-}
-GetInstanceProcAddress               :: glfw.GetInstanceProcAddress;
-GetPhysicalDevicePresentationSupport :: glfw.GetPhysicalDevicePresentationSupport;
-CreateWindowSurface                  :: glfw.CreateWindowSurface;
-
-SetWindowIconifyCallback      :: glfw.SetWindowIconifyCallback;
-SetWindowRefreshCallback      :: glfw.SetWindowRefreshCallback;
-SetWindowFocusCallback        :: glfw.SetWindowFocusCallback;
-SetWindowCloseCallback        :: glfw.SetWindowCloseCallback;
-SetWindowSizeCallback         :: glfw.SetWindowSizeCallback;
-SetWindowPosCallback          :: glfw.SetWindowPosCallback;
-SetFramebufferSizeCallback    :: glfw.SetFramebufferSizeCallback;
-SetDropCallback               :: glfw.SetDropCallback;
-SetMonitorCallback            :: glfw.SetMonitorCallback;
-SetWindowMaximizeCallback     :: glfw.SetWindowMaximizeCallback;
-SetWindowContentScaleCallback :: glfw.SetWindowContentScaleCallback;
-
-SetKeyCallback         :: glfw.SetKeyCallback;
-SetMouseButtonCallback :: glfw.SetMouseButtonCallback;
-SetCursorPosCallback   :: glfw.SetCursorPosCallback;
-SetScrollCallback      :: glfw.SetScrollCallback;
-SetCharCallback        :: glfw.SetCharCallback;
-SetCharModsCallback    :: glfw.SetCharModsCallback;
-SetCursorEnterCallback :: glfw.SetCursorEnterCallback;
-SetJoystickCallback    :: glfw.SetJoystickCallback;
-
-SetErrorCallback :: glfw.SetErrorCallback;
+	count: u32
+	exts := glfw.GetRequiredInstanceExtensions(&count)
+	return exts[:count]
+}
+GetInstanceProcAddress               :: glfw.GetInstanceProcAddress
+GetPhysicalDevicePresentationSupport :: glfw.GetPhysicalDevicePresentationSupport
+CreateWindowSurface                  :: glfw.CreateWindowSurface
+
+SetWindowIconifyCallback      :: glfw.SetWindowIconifyCallback
+SetWindowRefreshCallback      :: glfw.SetWindowRefreshCallback
+SetWindowFocusCallback        :: glfw.SetWindowFocusCallback
+SetWindowCloseCallback        :: glfw.SetWindowCloseCallback
+SetWindowSizeCallback         :: glfw.SetWindowSizeCallback
+SetWindowPosCallback          :: glfw.SetWindowPosCallback
+SetFramebufferSizeCallback    :: glfw.SetFramebufferSizeCallback
+SetDropCallback               :: glfw.SetDropCallback
+SetMonitorCallback            :: glfw.SetMonitorCallback
+SetWindowMaximizeCallback     :: glfw.SetWindowMaximizeCallback
+SetWindowContentScaleCallback :: glfw.SetWindowContentScaleCallback
+
+SetKeyCallback         :: glfw.SetKeyCallback
+SetMouseButtonCallback :: glfw.SetMouseButtonCallback
+SetCursorPosCallback   :: glfw.SetCursorPosCallback
+SetScrollCallback      :: glfw.SetScrollCallback
+SetCharCallback        :: glfw.SetCharCallback
+SetCharModsCallback    :: glfw.SetCharModsCallback
+SetCursorEnterCallback :: glfw.SetCursorEnterCallback
+SetJoystickCallback    :: glfw.SetJoystickCallback
+
+SetErrorCallback :: glfw.SetErrorCallback
 
 
 // Used by vendor:OpenGL
 gl_set_proc_address :: proc(p: rawptr, name: cstring) {
-	(^rawptr)(p)^ = GetProcAddress(name);
+	(^rawptr)(p)^ = GetProcAddress(name)
 }

+ 40 - 40
vendor/portmidi/portmidi.odin

@@ -7,7 +7,7 @@ when ODIN_OS == "windows" do foreign import lib "portmidi.lib"
 
 #assert(size_of(b32) == size_of(c.int));
 
-DEFAULT_SYSEX_BUFFER_SIZE :: 1024;
+DEFAULT_SYSEX_BUFFER_SIZE :: 1024
 
 Error :: enum c.int {
 	NoError = 0,
@@ -33,7 +33,7 @@ Error :: enum c.int {
 
 /**  A single Stream is a descriptor for an open MIDI device.
 */
-Stream :: distinct rawptr;
+Stream :: distinct rawptr
 
 @(default_calling_convention="c", link_prefix="Pm_")
 foreign lib {
@@ -75,7 +75,7 @@ GetErrorText :: proc (errnum: Error) -> string {
 	foreign lib {
 		Pm_GetErrorText :: proc(errnum: Error) -> cstring ---
 	}
-	return string(Pm_GetErrorText(errnum));
+	return string(Pm_GetErrorText(errnum))
 }
 
 /**  Translate portmidi host error into human readable message.
@@ -87,18 +87,18 @@ GetHostErrorText :: proc (buf: []byte) -> string {
 	foreign lib {
 		Pm_GetHostErrorText :: proc(msg: [^]u8, len: c.uint) ---
 	}
-	Pm_GetHostErrorText(raw_data(buf), u32(len(buf)));
-	str := string(buf[:]);
-	return strings.truncate_to_byte(str, 0);
+	Pm_GetHostErrorText(raw_data(buf), u32(len(buf)))
+	str := string(buf[:])
+	return strings.truncate_to_byte(str, 0)
 }
 
 
-HDRLENGTH :: 50;
-HOST_ERROR_MSG_LEN :: 256; /* any host error msg will occupy less 
+HDRLENGTH :: 50
+HOST_ERROR_MSG_LEN :: 256 /* any host error msg will occupy less 
                               than this number of characters */
 
-DeviceID :: distinct c.int;
-NoDevice :: DeviceID(-1);
+DeviceID :: distinct c.int
+NoDevice :: DeviceID(-1)
 DeviceInfo :: struct {
 	structVersion: c.int,   /**< this internal structure version */ 
 	interf:        cstring, /**< underlying MIDI API, e.g. MMSystem or DirectX */
@@ -122,11 +122,11 @@ foreign lib {
     Timestamp is used to represent a millisecond clock with arbitrary
     start time. The type is used for all MIDI timestampes and clocks.
 */
-Timestamp :: distinct i32;
-TimeProc :: proc "c" (time_info: rawptr) -> Timestamp;
+Timestamp :: distinct i32
+TimeProc :: proc "c" (time_info: rawptr) -> Timestamp
 
 Before :: #force_inline proc "c" (t1, t2: Timestamp) -> b32 {
-	return b32((t1-t2) < 0);
+	return b32((t1-t2) < 0)
 }
 
 @(default_calling_convention="c", link_prefix="Pm_")
@@ -245,50 +245,50 @@ foreign lib {
  	
 /* Filter bit-mask definitions */
 /** filter active sensing messages (0xFE): */
-FILT_ACTIVE :: 1 << 0x0E;
+FILT_ACTIVE :: 1 << 0x0E
 /** filter system exclusive messages (0xF0): */
-FILT_SYSEX :: 1 << 0x00;
+FILT_SYSEX :: 1 << 0x00
 /** filter MIDI clock message (0xF8) */
-FILT_CLOCK :: 1 << 0x08;
+FILT_CLOCK :: 1 << 0x08
 /** filter play messages (start 0xFA, stop 0xFC, continue 0xFB) */
-FILT_PLAY :: (1 << 0x0A) | (1 << 0x0C) | (1 << 0x0B);
+FILT_PLAY :: (1 << 0x0A) | (1 << 0x0C) | (1 << 0x0B)
 /** filter tick messages (0xF9) */
-FILT_TICK :: 1 << 0x09;
+FILT_TICK :: 1 << 0x09
 /** filter undefined FD messages */
-FILT_FD :: 1 << 0x0D;
+FILT_FD :: 1 << 0x0D
 /** filter undefined real-time messages */
-FILT_UNDEFINED :: FILT_FD;
+FILT_UNDEFINED :: FILT_FD
 /** filter reset messages (0xFF) */
-FILT_RESET :: 1 << 0x0F;
+FILT_RESET :: 1 << 0x0F
 /** filter all real-time messages */
-FILT_REALTIME :: FILT_ACTIVE | FILT_SYSEX | FILT_CLOCK | FILT_PLAY | FILT_UNDEFINED | FILT_RESET | FILT_TICK;
+FILT_REALTIME :: FILT_ACTIVE | FILT_SYSEX | FILT_CLOCK | FILT_PLAY | FILT_UNDEFINED | FILT_RESET | FILT_TICK
 /** filter note-on and note-off (0x90-0x9F and 0x80-0x8F */
-FILT_NOTE :: (1 << 0x19) | (1 << 0x18);
+FILT_NOTE :: (1 << 0x19) | (1 << 0x18)
 /** filter channel aftertouch (most midi controllers use this) (0xD0-0xDF)*/
-FILT_CHANNEL_AFTERTOUCH :: 1 << 0x1D;
+FILT_CHANNEL_AFTERTOUCH :: 1 << 0x1D
 /** per-note aftertouch (0xA0-0xAF) */
-FILT_POLY_AFTERTOUCH :: 1 << 0x1A;
+FILT_POLY_AFTERTOUCH :: 1 << 0x1A
 /** filter both channel and poly aftertouch */
-FILT_AFTERTOUCH :: FILT_CHANNEL_AFTERTOUCH | FILT_POLY_AFTERTOUCH;
+FILT_AFTERTOUCH :: FILT_CHANNEL_AFTERTOUCH | FILT_POLY_AFTERTOUCH
 /** Program changes (0xC0-0xCF) */
-FILT_PROGRAM :: 1 << 0x1C;
+FILT_PROGRAM :: 1 << 0x1C
 /** Control Changes (CC's) (0xB0-0xBF)*/
-FILT_CONTROL :: 1 << 0x1B;
+FILT_CONTROL :: 1 << 0x1B
 /** Pitch Bender (0xE0-0xEF*/
-FILT_PITCHBEND :: 1 << 0x1E;
+FILT_PITCHBEND :: 1 << 0x1E
 /** MIDI Time Code (0xF1)*/
-FILT_MTC :: 1 << 0x01;
+FILT_MTC :: 1 << 0x01
 /** Song Position (0xF2) */
-FILT_SONG_POSITION :: 1 << 0x02;
+FILT_SONG_POSITION :: 1 << 0x02
 /** Song Select (0xF3)*/
-FILT_SONG_SELECT :: 1 << 0x03;
+FILT_SONG_SELECT :: 1 << 0x03
 /** Tuning request (0xF6)*/
-FILT_TUNE :: 1 << 0x06;
+FILT_TUNE :: 1 << 0x06
 /** All System Common messages (mtc, song position, song select, tune request) */
-FILT_SYSTEMCOMMON :: FILT_MTC | FILT_SONG_POSITION | FILT_SONG_SELECT | FILT_TUNE;
+FILT_SYSTEMCOMMON :: FILT_MTC | FILT_SONG_POSITION | FILT_SONG_SELECT | FILT_TUNE
 
 Channel :: #force_inline proc "c" (channel: c.int) -> c.int {
-	return 1<<c.uint(channel);
+	return 1<<c.uint(channel)
 }
 
 @(default_calling_convention="c", link_prefix="Pm_")
@@ -361,19 +361,19 @@ foreign lib {
     MessageData2() extract fields from a 32-bit midi message.
 */
 MessageMake :: #force_inline proc "c" (status: c.int, data1, data2: c.int) -> Message {
-	return Message(((data2 << 16) & 0xFF0000) | ((data1 << 8) & 0xFF00) | (status & 0xFF));
+	return Message(((data2 << 16) & 0xFF0000) | ((data1 << 8) & 0xFF00) | (status & 0xFF))
 }
 MessageStatus :: #force_inline proc "c" (msg: Message) -> c.int {
-	return c.int(msg & 0xFF);
+	return c.int(msg & 0xFF)
 }
 MessageData1  :: #force_inline proc "c" (msg: Message) -> c.int {
-	return c.int((msg >> 8) & 0xFF);
+	return c.int((msg >> 8) & 0xFF)
 }
 MessageData2  :: #force_inline proc "c" (msg: Message) -> c.int {
-	return c.int((msg >> 16) & 0xFF);
+	return c.int((msg >> 16) & 0xFF)
 }
 
-Message :: distinct i32;
+Message :: distinct i32
 /**
    All midi data comes in the form of Event structures. A sysex
    message is encoded as a sequence of Event structures, with each

+ 1 - 1
vendor/portmidi/util.odin

@@ -10,7 +10,7 @@ import "core:c"
 when ODIN_OS == "windows" do foreign import lib "portmidi_s.lib"
 
 
-Queue :: distinct rawptr;
+Queue :: distinct rawptr
 
 
 /*

+ 11 - 11
vendor/sdl2/image/sdl_image.odin

@@ -8,11 +8,11 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2_image"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2_image"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2_image"
 
-bool :: SDL.bool;
+bool :: SDL.bool
 
-MAJOR_VERSION :: 2;
-MINOR_VERSION :: 0;
-PATCHLEVEL    :: 5;
+MAJOR_VERSION :: 2
+MINOR_VERSION :: 0
+PATCHLEVEL    :: 5
 
 @(default_calling_convention="c", link_prefix="IMG_")
 foreign lib {
@@ -26,12 +26,12 @@ InitFlag :: enum c.int {
 	WEBP = 3,
 }
 
-InitFlags :: distinct bit_set[InitFlag; c.int];
+InitFlags :: distinct bit_set[InitFlag; c.int]
 
-INIT_JPG  :: InitFlags{.JPG};
-INIT_PNG  :: InitFlags{.PNG};
-INIT_TIF  :: InitFlags{.TIF};
-INIT_WEBP :: InitFlags{.WEBP};
+INIT_JPG  :: InitFlags{.JPG}
+INIT_PNG  :: InitFlags{.PNG}
+INIT_TIF  :: InitFlags{.TIF}
+INIT_WEBP :: InitFlags{.WEBP}
 
 /* Animated image support
    Currently only animated GIFs are supported.
@@ -44,8 +44,8 @@ Animation :: struct {
 }
 
 /* We'll use SDL for reporting errors */
-SetError :: SDL.SetError;
-GetError :: SDL.GetError;
+SetError :: SDL.SetError
+GetError :: SDL.GetError
 
 @(default_calling_convention="c", link_prefix="IMG_")
 foreign lib {

+ 42 - 42
vendor/sdl2/mixer/sdl_mixer.odin

@@ -9,14 +9,14 @@ when ODIN_OS == "darwin"  do foreign import lib "system:SDL2_mixer"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2_mixer"
 
 
-MAJOR_VERSION :: 2;
-MINOR_VERSION :: 0;
-PATCHLEVEL    :: 4;
+MAJOR_VERSION :: 2
+MINOR_VERSION :: 0
+PATCHLEVEL    :: 4
 
-CHANNELS :: 8;
+CHANNELS :: 8
 
 
-bool :: SDL.bool;
+bool :: SDL.bool
 
 
 InitFlag :: enum c.int {
@@ -28,19 +28,19 @@ InitFlag :: enum c.int {
 	OPUS   = 6,
 }
 
-InitFlags :: distinct bit_set[InitFlag; c.int];
+InitFlags :: distinct bit_set[InitFlag; c.int]
 
-INIT_FLAC :: InitFlags{.FLAC};
-INIT_MOD  :: InitFlags{.MOD};
-INIT_MP3  :: InitFlags{.MP3};
-INIT_OGG  :: InitFlags{.OGG};
-INIT_MID  :: InitFlags{.MID};
-INIT_OPUS :: InitFlags{.OPUS};
+INIT_FLAC :: InitFlags{.FLAC}
+INIT_MOD  :: InitFlags{.MOD}
+INIT_MP3  :: InitFlags{.MP3}
+INIT_OGG  :: InitFlags{.OGG}
+INIT_MID  :: InitFlags{.MID}
+INIT_OPUS :: InitFlags{.OPUS}
 
-DEFAULT_FREQUENCY :: 44100;
-DEFAULT_FORMAT :: SDL.AUDIO_S16SYS;
-DEFAULT_CHANNELS :: 2;
-MAX_VOLUME :: SDL.MIX_MAXVOLUME;
+DEFAULT_FREQUENCY :: 44100
+DEFAULT_FORMAT :: SDL.AUDIO_S16SYS
+DEFAULT_CHANNELS :: 2
+MAX_VOLUME :: SDL.MIX_MAXVOLUME
 
 Chunk :: struct {
 	allocated: c.int,
@@ -55,9 +55,9 @@ Fading :: enum c.int {
 	FADING_IN,
 }
 
-NO_FADING  :: Fading.NO_FADING;
-FADING_OUT :: Fading.FADING_OUT;
-FADING_IN  :: Fading.FADING_IN;
+NO_FADING  :: Fading.NO_FADING
+FADING_OUT :: Fading.FADING_OUT
+FADING_IN  :: Fading.FADING_IN
 
 MusicType :: enum c.int {
 	NONE,
@@ -73,33 +73,33 @@ MusicType :: enum c.int {
 	OPUS,
 }
 
-MUS_NONE           :: MusicType.NONE;
-MUS_CMD            :: MusicType.CMD;
-MUS_WAV            :: MusicType.WAV;
-MUS_MOD            :: MusicType.MOD;
-MUS_MID            :: MusicType.MID;
-MUS_OGG            :: MusicType.OGG;
-MUS_MP3            :: MusicType.MP3;
-MUS_MP3_MAD_UNUSED :: MusicType.MP3_MAD_UNUSED;
-MUS_FLAC           :: MusicType.FLAC;
-MUS_MODPLUG_UNUSED :: MusicType.MODPLUG_UNUSED;
-MUS_OPUS           :: MusicType.OPUS;
+MUS_NONE           :: MusicType.NONE
+MUS_CMD            :: MusicType.CMD
+MUS_WAV            :: MusicType.WAV
+MUS_MOD            :: MusicType.MOD
+MUS_MID            :: MusicType.MID
+MUS_OGG            :: MusicType.OGG
+MUS_MP3            :: MusicType.MP3
+MUS_MP3_MAD_UNUSED :: MusicType.MP3_MAD_UNUSED
+MUS_FLAC           :: MusicType.FLAC
+MUS_MODPLUG_UNUSED :: MusicType.MODPLUG_UNUSED
+MUS_OPUS           :: MusicType.OPUS
 
-Music :: struct {};
+Music :: struct {}
 
 
 
 /* We'll use SDL for reporting errors */
-SetError   :: SDL.SetError;
-GetError   :: SDL.GetError;
-ClearError :: SDL.ClearError;
+SetError   :: SDL.SetError
+GetError   :: SDL.GetError
+ClearError :: SDL.ClearError
 
 Mix_LoadWAV :: #force_inline proc "c" (file: cstring) -> ^Chunk {
-	return LoadWAV_RW(SDL.RWFromFile(file, "rb"), true);
+	return LoadWAV_RW(SDL.RWFromFile(file, "rb"), true)
 }
 
 
-MixFunc :: proc "c" (udata: rawptr, stream: [^]u8, len: c.int);
+MixFunc :: proc "c" (udata: rawptr, stream: [^]u8, len: c.int)
 
 @(default_calling_convention="c", link_prefix="Mix_")
 foreign lib {
@@ -141,18 +141,18 @@ foreign lib {
 	ChannelFinished      :: proc(channel_finished: proc "c" (channel: c.int)) ---
 }
 
-CHANNEL_POST :: -2;
+CHANNEL_POST :: -2
 
-EffectFunc_t :: proc "c" (chan: c.int, stream: rawptr, len: c.int, udata: rawptr);
-EffectDone_t :: proc "c" (chan: c.int, udata: rawptr);
+EffectFunc_t :: proc "c" (chan: c.int, stream: rawptr, len: c.int, udata: rawptr)
+EffectDone_t :: proc "c" (chan: c.int, udata: rawptr)
 
-EFFECTSMAXSPEED :: "MIX_EFFECTSMAXSPEED";
+EFFECTSMAXSPEED :: "MIX_EFFECTSMAXSPEED"
 
 PlayChannel :: #force_inline proc "c" (channel: c.int, chunk: ^Chunk, loops: c.int) -> c.int {
-	return PlayChannelTimed(channel, chunk, loops, -1);
+	return PlayChannelTimed(channel, chunk, loops, -1)
 }
 FadeInChannel :: #force_inline proc "c" (channel: c.int, chunk: ^Chunk, loops: c.int, ms: c.int) -> c.int {
-	return FadeInChannelTimed(channel, chunk, loops, ms, -1);
+	return FadeInChannelTimed(channel, chunk, loops, ms, -1)
 }
 
 

+ 36 - 36
vendor/sdl2/net/sdl_net.odin

@@ -8,21 +8,21 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2_net"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2_net"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2_net"
 
-bool :: SDL.bool;
+bool :: SDL.bool
 
-MAJOR_VERSION :: 2;
-MINOR_VERSION :: 0;
-PATCHLEVEL    :: 1;
+MAJOR_VERSION :: 2
+MINOR_VERSION :: 0
+PATCHLEVEL    :: 1
 
 IPaddress :: struct {
 	host: u32,            /* 32-bit IPv4 host address */
 	port: u16,            /* 16-bit protocol port */
 }
 
-INADDR_ANY       :: 0x00000000;
-INADDR_NONE      :: 0xFFFFFFFF;
-INADDR_LOOPBACK  :: 0x7f000001;
-INADDR_BROADCAST :: 0xFFFFFFFF;
+INADDR_ANY       :: 0x00000000
+INADDR_NONE      :: 0xFFFFFFFF
+INADDR_LOOPBACK  :: 0x7f000001
+INADDR_BROADCAST :: 0xFFFFFFFF
 
 
 @(default_calling_convention="c", link_prefix="SDLNet_")
@@ -42,7 +42,7 @@ foreign lib {
 /* TCP network API                                                     */
 /***********************************************************************/
 
-TCPsocket :: distinct rawptr;
+TCPsocket :: distinct rawptr
 
 @(default_calling_convention="c", link_prefix="SDLNet_")
 foreign lib {
@@ -56,11 +56,11 @@ foreign lib {
 
 
 /* The maximum channels on a a UDP socket */
-MAX_UDPCHANNELS  :: 32;
+MAX_UDPCHANNELS  :: 32
 /* The maximum addresses bound to a single UDP socket channel */
-MAX_UDPADDRESSES :: 4;
+MAX_UDPADDRESSES :: 4
 
-UDPsocket :: distinct rawptr;
+UDPsocket :: distinct rawptr
 UDPpacket :: struct {
 	channel: c.int,     /* The src/dst channel of the packet */
 	data:    [^]u8,     /* The packet data */
@@ -99,16 +99,16 @@ foreign lib {
 
 AllocPacketSlice :: proc "c" (howmany: c.int, size: c.int) -> []^UDPpacket {
 	if packets := AllocPacketV(howmany, size); packets != nil {
-		return packets[:howmany];
+		return packets[:howmany]
 	}
-	return nil;
+	return nil
 }
 FreePacketSlice :: proc "c" (packets: []^UDPpacket) {
-	FreePacketV(raw_data(packets));
+	FreePacketV(raw_data(packets))
 }
 
 UDP_SendSlice :: proc "c" (sock: UDPsocket, packets: []^UDPpacket) -> c.int {
-	return UDP_SendV(sock, raw_data(packets), c.int(len(packets)));
+	return UDP_SendV(sock, raw_data(packets), c.int(len(packets)))
 }
 
 
@@ -116,27 +116,27 @@ UDP_SendSlice :: proc "c" (sock: UDPsocket, packets: []^UDPpacket) -> c.int {
 /* Hooks for checking sockets for available data                       */
 /***********************************************************************/
 
-SocketSet :: distinct rawptr;
+SocketSet :: distinct rawptr
 
 /* Any network socket can be safely cast to this socket type */
-GenericSocket :: ^struct { ready: c.int };
+GenericSocket :: ^struct { ready: c.int }
 
 TCP_AddSocket :: #force_inline proc "c" (set: SocketSet, sock: TCPsocket) -> c.int {
-	return AddSocket(set, (GenericSocket)(sock));
+	return AddSocket(set, (GenericSocket)(sock))
 }
 UDP_AddSocket :: #force_inline proc "c" (set: SocketSet, sock: UDPsocket) -> c.int {
-	return AddSocket(set, (GenericSocket)(sock));
+	return AddSocket(set, (GenericSocket)(sock))
 }
 TCP_DelSocket :: #force_inline proc "c" (set: SocketSet, sock: TCPsocket) -> c.int {
-	return DelSocket(set, (GenericSocket)(sock));
+	return DelSocket(set, (GenericSocket)(sock))
 }
 UDP_DelSocket :: #force_inline proc "c" (set: SocketSet, sock: UDPsocket) -> c.int {
-	return DelSocket(set, (GenericSocket)(sock));
+	return DelSocket(set, (GenericSocket)(sock))
 }
 
 SocketReady :: #force_inline proc "c" (sock: rawptr) -> bool {
-	s := (GenericSocket)(sock);
-	return bool(s != nil && s.ready != 0);
+	s := (GenericSocket)(sock)
+	return bool(s != nil && s.ready != 0)
 }
 
 
@@ -167,25 +167,25 @@ foreign lib {
 
 /* Write a 16/32-bit value to network packet buffer */
 Write16 :: #force_inline proc "c" (value: u16, areap: rawptr) {
-	area := (^[2]u8)(areap);
-	area[0] = u8((value >>  8) & 0xFF);
-	area[1] = u8( value        & 0xFF);
+	area := (^[2]u8)(areap)
+	area[0] = u8((value >>  8) & 0xFF)
+	area[1] = u8( value        & 0xFF)
 }
 Write32 :: #force_inline proc "c" (value: u32, areap: rawptr) {
-	area := (^[4]u8)(areap);
-	area[0] = u8((value >> 24) & 0xFF);
-	area[1] = u8((value >> 16) & 0xFF);
-	area[2] = u8((value >>  8) & 0xFF);
-	area[3] = u8( value        & 0xFF);
+	area := (^[4]u8)(areap)
+	area[0] = u8((value >> 24) & 0xFF)
+	area[1] = u8((value >> 16) & 0xFF)
+	area[2] = u8((value >>  8) & 0xFF)
+	area[3] = u8( value        & 0xFF)
 }
 
 /* Read a 16/32-bit value from network packet buffer */
 Read16 :: #force_inline proc "c" (areap: rawptr) -> u16 {
-	area := (^[2]u8)(areap);
-	return u16(area[0])<<8 | u16(area[1]);
+	area := (^[2]u8)(areap)
+	return u16(area[0])<<8 | u16(area[1])
 }
 
 Read32 :: #force_inline proc "c" (areap: rawptr) -> u32 {
-	area := (^[4]u8)(areap);
-	return u32(area[0])<<24 | u32(area[1])<<16 | u32(area[2])<<8 | u32(area[3]);
+	area := (^[4]u8)(areap)
+	return u32(area[0])<<24 | u32(area[1])<<16 | u32(area[2])<<8 | u32(area[3])
 }

+ 31 - 31
vendor/sdl2/sdl2.odin

@@ -34,11 +34,11 @@ version :: struct {
 	major: u8,        /**< major version */
 	minor: u8,        /**< minor version */
 	patch: u8,        /**< update version */
-};
+}
 
-MAJOR_VERSION   :: 2;
-MINOR_VERSION   :: 0;
-PATCHLEVEL      :: 16;
+MAJOR_VERSION   :: 2
+MINOR_VERSION   :: 0
+PATCHLEVEL      :: 16
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -59,18 +59,18 @@ InitFlag :: enum u32 {
 	NOPARACHUTE    =  0x14,
 }
 
-InitFlags :: bit_set[InitFlag; u32];
+InitFlags :: bit_set[InitFlag; u32]
 
-INIT_TIMER          :: InitFlags{.TIMER};
-INIT_AUDIO          :: InitFlags{.AUDIO};
-INIT_VIDEO          :: InitFlags{.VIDEO};           /**< INIT_VIDEO implies INIT_EVENTS */
-INIT_JOYSTICK       :: InitFlags{.JOYSTICK};        /**< INIT_JOYSTICK implies INIT_EVENTS */
-INIT_HAPTIC         :: InitFlags{.HAPTIC};
-INIT_GAMECONTROLLER :: InitFlags{.GAMECONTROLLER};  /**< INIT_GAMECONTROLLER implies INIT_JOYSTICK */
-INIT_EVENTS         :: InitFlags{.EVENTS};
-INIT_SENSOR         :: InitFlags{.SENSOR};
-INIT_NOPARACHUTE    :: InitFlags{.NOPARACHUTE};     /**< compatibility; this flag is ignored. */
-INIT_EVERYTHING :: InitFlags{.TIMER, .AUDIO, .VIDEO, .EVENTS, .JOYSTICK, .HAPTIC, .GAMECONTROLLER, .SENSOR};
+INIT_TIMER          :: InitFlags{.TIMER}
+INIT_AUDIO          :: InitFlags{.AUDIO}
+INIT_VIDEO          :: InitFlags{.VIDEO}           /**< INIT_VIDEO implies INIT_EVENTS */
+INIT_JOYSTICK       :: InitFlags{.JOYSTICK}        /**< INIT_JOYSTICK implies INIT_EVENTS */
+INIT_HAPTIC         :: InitFlags{.HAPTIC}
+INIT_GAMECONTROLLER :: InitFlags{.GAMECONTROLLER}  /**< INIT_GAMECONTROLLER implies INIT_JOYSTICK */
+INIT_EVENTS         :: InitFlags{.EVENTS}
+INIT_SENSOR         :: InitFlags{.SENSOR}
+INIT_NOPARACHUTE    :: InitFlags{.NOPARACHUTE}     /**< compatibility; this flag is ignored. */
+INIT_EVERYTHING :: InitFlags{.TIMER, .AUDIO, .VIDEO, .EVENTS, .JOYSTICK, .HAPTIC, .GAMECONTROLLER, .SENSOR}
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -85,8 +85,8 @@ foreign lib {
 
 // Atomic
 // NOTE: Prefer the intrinsics built into Odin 'package intrinsics'
-SpinLock :: distinct c.int;
-atomic_t :: struct { value: c.int };
+SpinLock :: distinct c.int
+atomic_t :: struct { value: c.int }
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -107,11 +107,11 @@ foreign lib {
 
 // Bits
 MostSignificantBitIndex32 :: #force_inline proc "c" (x: u32) -> c.int {
-	return c.int(intrinsics.count_leading_zeros(x));
+	return c.int(intrinsics.count_leading_zeros(x))
 }
 
 HasExactlyOneBitSet32 :: #force_inline proc "c" (x: u32) -> bool {
-	return intrinsics.count_ones(x) == 1;
+	return intrinsics.count_ones(x) == 1
 }
 
 // Clipboard
@@ -135,11 +135,11 @@ foreign lib {
 }
 
 GetErrorString :: proc "c" () -> string {
-	return string(GetError());
+	return string(GetError())
 }
 GetErrorMsgString :: proc "c" (buf: []u8) -> string {
-	cstr := GetErrorMsg(raw_data(buf), c.int(len(buf)));
-	return string(cstr);
+	cstr := GetErrorMsg(raw_data(buf), c.int(len(buf)))
+	return string(cstr)
 }
 
 
@@ -234,16 +234,16 @@ foreign lib {
 // quit
 
 QuitRequested :: #force_inline proc "c" () -> bool {
-        PumpEvents();
-        return bool(PeepEvents(nil, 0, .PEEKEVENT, .QUIT, .QUIT) > 0);
+        PumpEvents()
+        return bool(PeepEvents(nil, 0, .PEEKEVENT, .QUIT, .QUIT) > 0)
 }
 
 
 // sensor
 
-Sensor :: struct {};
+Sensor :: struct {}
 
-SensorID :: distinct i32;
+SensorID :: distinct i32
 
 SensorType :: enum c.int {
 	INVALID = -1,    /**< Returned for an invalid sensor */
@@ -252,7 +252,7 @@ SensorType :: enum c.int {
 	GYRO,            /**< Gyroscope */
 }
 
-STANDARD_GRAVITY :: 9.80665;
+STANDARD_GRAVITY :: 9.80665
 
 
 @(default_calling_convention="c", link_prefix="SDL_")
@@ -278,9 +278,9 @@ foreign lib {
 
 // shape
 
-NONSHAPEABLE_WINDOW    :: -1;
-INVALID_SHAPE_ARGUMENT :: -2;
-WINDOW_LACKS_SHAPE     :: -3;
+NONSHAPEABLE_WINDOW    :: -1
+INVALID_SHAPE_ARGUMENT :: -2
+WINDOW_LACKS_SHAPE     :: -3
 
 WindowShapeModeEnum :: enum c.int {
 	/** \brief The default mode, a binarized alpha cutoff of 1. */
@@ -294,7 +294,7 @@ WindowShapeModeEnum :: enum c.int {
 }
 
 SDL_SHAPEMODEALPHA :: #force_inline proc "c" (mode: WindowShapeModeEnum) -> bool {
-	return bool(mode == .Default || mode == .BinarizeAlpha || mode == .ReverseBinarizeAlpha);
+	return bool(mode == .Default || mode == .BinarizeAlpha || mode == .ReverseBinarizeAlpha)
 }
 
 

+ 39 - 39
vendor/sdl2/sdl_audio.odin

@@ -27,13 +27,13 @@ when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
  *
  *  There are macros in SDL 2.0 and later to query these bits.
  */
-AudioFormat :: distinct u16;
+AudioFormat :: distinct u16
 
 
-AUDIO_MASK_BITSIZE       :: 0xFF;
-AUDIO_MASK_DATATYPE      :: 1<<8;
-AUDIO_MASK_ENDIAN        :: 1<<12;
-AUDIO_MASK_SIGNED        :: 1<<15;
+AUDIO_MASK_BITSIZE       :: 0xFF
+AUDIO_MASK_DATATYPE      :: 1<<8
+AUDIO_MASK_ENDIAN        :: 1<<12
+AUDIO_MASK_SIGNED        :: 1<<15
 AUDIO_BITSIZE        :: #force_inline proc "c" (x: AudioFormat) -> u8   { return u8(x & AUDIO_MASK_BITSIZE)                       }
 AUDIO_ISFLOAT        :: #force_inline proc "c" (x: AudioFormat) -> bool { return (x & AUDIO_MASK_DATATYPE) == AUDIO_MASK_DATATYPE }
 AUDIO_ISBIGENDIAN    :: #force_inline proc "c" (x: AudioFormat) -> bool { return (x & AUDIO_MASK_ENDIAN) == AUDIO_MASK_ENDIAN     }
@@ -42,43 +42,43 @@ AUDIO_ISINT          :: #force_inline proc "c" (x: AudioFormat) -> bool { return
 AUDIO_ISLITTLEENDIAN :: #force_inline proc "c" (x: AudioFormat) -> bool { return !AUDIO_ISBIGENDIAN(x)                            }
 AUDIO_ISUNSIGNED     :: #force_inline proc "c" (x: AudioFormat) -> bool { return !AUDIO_ISSIGNED(x)                               }
 
-AUDIO_U8        :: 0x0008;  /**< Unsigned 8-bit samples */
-AUDIO_S8        :: 0x8008;  /**< Signed 8-bit samples */
-AUDIO_U16LSB    :: 0x0010;  /**< Unsigned 16-bit samples */
-AUDIO_S16LSB    :: 0x8010;  /**< Signed 16-bit samples */
-AUDIO_U16MSB    :: 0x1010;  /**< As above, but big-endian byte order */
-AUDIO_S16MSB    :: 0x9010;  /**< As above, but big-endian byte order */
-AUDIO_U16       :: AUDIO_U16LSB;
-AUDIO_S16       :: AUDIO_S16LSB;
+AUDIO_U8        :: 0x0008  /**< Unsigned 8-bit samples */
+AUDIO_S8        :: 0x8008  /**< Signed 8-bit samples */
+AUDIO_U16LSB    :: 0x0010  /**< Unsigned 16-bit samples */
+AUDIO_S16LSB    :: 0x8010  /**< Signed 16-bit samples */
+AUDIO_U16MSB    :: 0x1010  /**< As above, but big-endian byte order */
+AUDIO_S16MSB    :: 0x9010  /**< As above, but big-endian byte order */
+AUDIO_U16       :: AUDIO_U16LSB
+AUDIO_S16       :: AUDIO_S16LSB
 
-AUDIO_S32LSB    :: 0x8020;  /**< 32-bit integer samples */
-AUDIO_S32MSB    :: 0x9020;  /**< As above, but big-endian byte order */
-AUDIO_S32       :: AUDIO_S32LSB;
+AUDIO_S32LSB    :: 0x8020  /**< 32-bit integer samples */
+AUDIO_S32MSB    :: 0x9020  /**< As above, but big-endian byte order */
+AUDIO_S32       :: AUDIO_S32LSB
 
-AUDIO_F32LSB    :: 0x8120;  /**< 32-bit floating point samples */
-AUDIO_F32MSB    :: 0x9120;  /**< As above, but big-endian byte order */
-AUDIO_F32       :: AUDIO_F32LSB;
+AUDIO_F32LSB    :: 0x8120  /**< 32-bit floating point samples */
+AUDIO_F32MSB    :: 0x9120  /**< As above, but big-endian byte order */
+AUDIO_F32       :: AUDIO_F32LSB
 
 when ODIN_ENDIAN == "little"  {
-	AUDIO_U16SYS :: AUDIO_U16LSB;
-	AUDIO_S16SYS :: AUDIO_S16LSB;
-	AUDIO_S32SYS :: AUDIO_S32LSB;
-	AUDIO_F32SYS :: AUDIO_F32LSB;
+	AUDIO_U16SYS :: AUDIO_U16LSB
+	AUDIO_S16SYS :: AUDIO_S16LSB
+	AUDIO_S32SYS :: AUDIO_S32LSB
+	AUDIO_F32SYS :: AUDIO_F32LSB
 } else {
-	AUDIO_U16SYS :: AUDIO_U16MSB;
-	AUDIO_S16SYS :: AUDIO_S16MSB;
-	AUDIO_S32SYS :: AUDIO_S32MSB;
-	AUDIO_F32SYS :: AUDIO_F32MSB;
+	AUDIO_U16SYS :: AUDIO_U16MSB
+	AUDIO_S16SYS :: AUDIO_S16MSB
+	AUDIO_S32SYS :: AUDIO_S32MSB
+	AUDIO_F32SYS :: AUDIO_F32MSB
 }
 
 
-AUDIO_ALLOW_FREQUENCY_CHANGE    :: 0x00000001;
-AUDIO_ALLOW_FORMAT_CHANGE       :: 0x00000002;
-AUDIO_ALLOW_CHANNELS_CHANGE     :: 0x00000004;
-AUDIO_ALLOW_SAMPLES_CHANGE      :: 0x00000008;
-AUDIO_ALLOW_ANY_CHANGE          :: AUDIO_ALLOW_FREQUENCY_CHANGE|AUDIO_ALLOW_FORMAT_CHANGE|AUDIO_ALLOW_CHANNELS_CHANGE|AUDIO_ALLOW_SAMPLES_CHANGE;
+AUDIO_ALLOW_FREQUENCY_CHANGE    :: 0x00000001
+AUDIO_ALLOW_FORMAT_CHANGE       :: 0x00000002
+AUDIO_ALLOW_CHANNELS_CHANGE     :: 0x00000004
+AUDIO_ALLOW_SAMPLES_CHANGE      :: 0x00000008
+AUDIO_ALLOW_ANY_CHANGE          :: AUDIO_ALLOW_FREQUENCY_CHANGE|AUDIO_ALLOW_FORMAT_CHANGE|AUDIO_ALLOW_CHANNELS_CHANGE|AUDIO_ALLOW_SAMPLES_CHANGE
 
-AudioCallback :: proc "c" (userdata: rawptr, stream: [^]u8, len: c.int);
+AudioCallback :: proc "c" (userdata: rawptr, stream: [^]u8, len: c.int)
 
 /**
  *  The calculated values in this structure are calculated by SDL_OpenAudio().
@@ -105,9 +105,9 @@ AudioSpec :: struct {
 }
 
 
-AudioFilter :: proc "c" (cvt: ^AudioCVT, format: AudioFormat);
+AudioFilter :: proc "c" (cvt: ^AudioCVT, format: AudioFormat)
 
-AUDIOCVT_MAX_FILTERS :: 9;
+AUDIOCVT_MAX_FILTERS :: 9
 
 AudioCVT :: struct #packed {
 	needed:       c.int,       /**< Set to 1 if conversion possible */
@@ -125,7 +125,7 @@ AudioCVT :: struct #packed {
 
 
 
-AudioDeviceID :: distinct u32;
+AudioDeviceID :: distinct u32
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -166,7 +166,7 @@ foreign lib {
 
 
 /* this is opaque to the outside world. */
-AudioStream :: struct {};
+AudioStream :: struct {}
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -180,7 +180,7 @@ foreign lib {
  *  Compatibility convenience function.
  */
 LoadWAV :: #force_inline proc "c" (file: cstring, spec: ^AudioSpec, audio_buf: ^[^]u8, audio_len: ^u32) -> ^AudioSpec {
-	return LoadWAV_RW(RWFromFile(file, "rb"), true, spec, audio_buf, audio_len);
+	return LoadWAV_RW(RWFromFile(file, "rb"), true, spec, audio_buf, audio_len)
 }
 
 @(default_calling_convention="c", link_prefix="SDL_")
@@ -221,7 +221,7 @@ foreign lib {
 }
 
 
-MIX_MAXVOLUME :: 128;
+MIX_MAXVOLUME :: 128
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 1 - 1
vendor/sdl2/sdl_cpuinfo.odin

@@ -12,7 +12,7 @@ when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
  * The 64-bit PowerPC processors have a 128 byte cache line.
  * We'll use the larger value to be generally safe.
  */
-CACHELINE_SIZE :: 128;
+CACHELINE_SIZE :: 128
 
 
 @(default_calling_convention="c", link_prefix="SDL_")

+ 9 - 9
vendor/sdl2/sdl_events.odin

@@ -7,8 +7,8 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-RELEASED :: 0;
-PRESSED  :: 1;
+RELEASED :: 0
+PRESSED  :: 1
 
 EventType :: enum u32 {
 	FIRSTEVENT     = 0,     /**< Unused (do not remove) */
@@ -167,7 +167,7 @@ KeyboardEvent :: struct {
 	keysym: Keysym,   /**< The key that was pressed or released */
 }
 
-TEXTEDITINGEVENT_TEXT_SIZE :: 32;
+TEXTEDITINGEVENT_TEXT_SIZE :: 32
 TextEditingEvent :: struct {
 	type: EventType,                                /**< ::SDL_TEXTEDITING */
     	timestamp: u32,                           /**< In milliseconds, populated using SDL_GetTicks() */
@@ -178,7 +178,7 @@ TextEditingEvent :: struct {
 }
 
 
-TEXTINPUTEVENT_TEXT_SIZE :: 32;
+TEXTINPUTEVENT_TEXT_SIZE :: 32
 TextInputEvent :: struct {
 	type: EventType,                              /**< ::SDL_TEXTINPUT */
 	timestamp: u32,                         /**< In milliseconds, populated using SDL_GetTicks() */
@@ -468,12 +468,12 @@ eventaction :: enum c.int {
 	GETEVENT,
 }
 
-EventFilter :: proc "c" (userdata: rawptr, event: ^Event) -> c.int;
+EventFilter :: proc "c" (userdata: rawptr, event: ^Event) -> c.int
 
-QUERY   :: -1;
-IGNORE  ::  0;
-DISABLE ::  0;
-ENABLE  ::  1;
+QUERY   :: -1
+IGNORE  ::  0
+DISABLE ::  0
+ENABLE  ::  1
 
 
 GetEventState :: #force_inline proc "c" (type: EventType) -> u8 { return EventState(type, QUERY) }

+ 2 - 2
vendor/sdl2/sdl_gamecontroller.odin

@@ -7,7 +7,7 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-GameController :: struct {};
+GameController :: struct {}
 
 GameControllerType :: enum c.int {
 	UNKNOWN = 0,
@@ -80,7 +80,7 @@ GameControllerButton :: enum c.int {
 
 
 GameControllerAddMappingsFromFile :: #force_inline proc "c" (file: cstring) -> c.int {
-	return GameControllerAddMappingsFromRW(RWFromFile(file, "rb"), true);
+	return GameControllerAddMappingsFromRW(RWFromFile(file, "rb"), true)
 }
 
 

+ 23 - 23
vendor/sdl2/sdl_gesture_haptic.odin

@@ -9,7 +9,7 @@ when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
 // Gesture
 
-GestureID :: distinct i64;
+GestureID :: distinct i64
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -21,7 +21,7 @@ foreign lib {
 
 // Haptic
 
-Haptic :: struct {};
+Haptic :: struct {}
 
 
 HapticType :: enum u16 {
@@ -42,22 +42,22 @@ HapticType :: enum u16 {
 	STATUS        = 1<<14,
 	PAUSE         = 1<<15,
 }
-HAPTIC_CONSTANT      :: HapticType.CONSTANT;
-HAPTIC_SINE          :: HapticType.SINE;
-HAPTIC_LEFTRIGHT     :: HapticType.LEFTRIGHT;
-HAPTIC_TRIANGLE      :: HapticType.TRIANGLE;
-HAPTIC_SAWTOOTHUP    :: HapticType.SAWTOOTHUP;
-HAPTIC_SAWTOOTHDOWN  :: HapticType.SAWTOOTHDOWN;
-HAPTIC_RAMP          :: HapticType.RAMP;
-HAPTIC_SPRING        :: HapticType.SPRING;
-HAPTIC_DAMPER        :: HapticType.DAMPER;
-HAPTIC_INERTIA       :: HapticType.INERTIA;
-HAPTIC_FRICTION      :: HapticType.FRICTION;
-HAPTIC_CUSTOM        :: HapticType.CUSTOM;
-HAPTIC_GAIN          :: HapticType.GAIN;
-HAPTIC_AUTOCENTER    :: HapticType.AUTOCENTER;
-HAPTIC_STATUS        :: HapticType.STATUS;
-HAPTIC_PAUSE         :: HapticType.PAUSE;
+HAPTIC_CONSTANT      :: HapticType.CONSTANT
+HAPTIC_SINE          :: HapticType.SINE
+HAPTIC_LEFTRIGHT     :: HapticType.LEFTRIGHT
+HAPTIC_TRIANGLE      :: HapticType.TRIANGLE
+HAPTIC_SAWTOOTHUP    :: HapticType.SAWTOOTHUP
+HAPTIC_SAWTOOTHDOWN  :: HapticType.SAWTOOTHDOWN
+HAPTIC_RAMP          :: HapticType.RAMP
+HAPTIC_SPRING        :: HapticType.SPRING
+HAPTIC_DAMPER        :: HapticType.DAMPER
+HAPTIC_INERTIA       :: HapticType.INERTIA
+HAPTIC_FRICTION      :: HapticType.FRICTION
+HAPTIC_CUSTOM        :: HapticType.CUSTOM
+HAPTIC_GAIN          :: HapticType.GAIN
+HAPTIC_AUTOCENTER    :: HapticType.AUTOCENTER
+HAPTIC_STATUS        :: HapticType.STATUS
+HAPTIC_PAUSE         :: HapticType.PAUSE
 
 HapticDirectionType :: enum u8 {
 	POLAR         = 0,
@@ -66,12 +66,12 @@ HapticDirectionType :: enum u8 {
 	STEERING_AXIS = 3,
 }
 
-HAPTIC_POLAR         :: HapticDirectionType.POLAR;
-HAPTIC_CARTESIAN     :: HapticDirectionType.CARTESIAN;
-HAPTIC_SPHERICAL     :: HapticDirectionType.SPHERICAL;
-HAPTIC_STEERING_AXIS :: HapticDirectionType.STEERING_AXIS;
+HAPTIC_POLAR         :: HapticDirectionType.POLAR
+HAPTIC_CARTESIAN     :: HapticDirectionType.CARTESIAN
+HAPTIC_SPHERICAL     :: HapticDirectionType.SPHERICAL
+HAPTIC_STEERING_AXIS :: HapticDirectionType.STEERING_AXIS
 
-HAPTIC_INFINITY :: 4294967295;
+HAPTIC_INFINITY :: 4294967295
 
 HapticDirection :: struct {
 	type: HapticDirectionType, /**< The type of encoding. */

+ 122 - 122
vendor/sdl2/sdl_hints.odin

@@ -7,127 +7,127 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-HINT_ACCELEROMETER_AS_JOYSTICK                :: "SDL_ACCELEROMETER_AS_JOYSTICK";
-HINT_ALLOW_ALT_TAB_WHILE_GRABBED              :: "SDL_ALLOW_ALT_TAB_WHILE_GRABBED";
-HINT_ALLOW_TOPMOST                            :: "SDL_ALLOW_TOPMOST";
-HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION  :: "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION";
-HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION :: "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION";
-HINT_ANDROID_BLOCK_ON_PAUSE                   :: "SDL_ANDROID_BLOCK_ON_PAUSE";
-HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO        :: "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO";
-HINT_ANDROID_TRAP_BACK_BUTTON                 :: "SDL_ANDROID_TRAP_BACK_BUTTON";
-HINT_APPLE_TV_CONTROLLER_UI_EVENTS            :: "SDL_APPLE_TV_CONTROLLER_UI_EVENTS";
-HINT_APPLE_TV_REMOTE_ALLOW_ROTATION           :: "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION";
-HINT_AUDIO_CATEGORY                           :: "SDL_AUDIO_CATEGORY";
-HINT_AUDIO_DEVICE_APP_NAME                    :: "SDL_AUDIO_DEVICE_APP_NAME";
-HINT_AUDIO_DEVICE_STREAM_NAME                 :: "SDL_AUDIO_DEVICE_STREAM_NAME";
-HINT_AUDIO_DEVICE_STREAM_ROLE                 :: "SDL_AUDIO_DEVICE_STREAM_ROLE";
-HINT_AUDIO_RESAMPLING_MODE                    :: "SDL_AUDIO_RESAMPLING_MODE";
-HINT_AUTO_UPDATE_JOYSTICKS                    :: "SDL_AUTO_UPDATE_JOYSTICKS";
-HINT_AUTO_UPDATE_SENSORS                      :: "SDL_AUTO_UPDATE_SENSORS";
-HINT_BMP_SAVE_LEGACY_FORMAT                   :: "SDL_BMP_SAVE_LEGACY_FORMAT";
-HINT_DISPLAY_USABLE_BOUNDS                    :: "SDL_DISPLAY_USABLE_BOUNDS";
-HINT_EMSCRIPTEN_ASYNCIFY                      :: "SDL_EMSCRIPTEN_ASYNCIFY";
-HINT_EMSCRIPTEN_KEYBOARD_ELEMENT              :: "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT";
-HINT_ENABLE_STEAM_CONTROLLERS                 :: "SDL_ENABLE_STEAM_CONTROLLERS";
-HINT_EVENT_LOGGING                            :: "SDL_EVENT_LOGGING";
-HINT_FRAMEBUFFER_ACCELERATION                 :: "SDL_FRAMEBUFFER_ACCELERATION";
-HINT_GAMECONTROLLERCONFIG                     :: "SDL_GAMECONTROLLERCONFIG";
-HINT_GAMECONTROLLERCONFIG_FILE                :: "SDL_GAMECONTROLLERCONFIG_FILE";
-HINT_GAMECONTROLLERTYPE                       :: "SDL_GAMECONTROLLERTYPE";
-HINT_GAMECONTROLLER_IGNORE_DEVICES            :: "SDL_GAMECONTROLLER_IGNORE_DEVICES";
-HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT     :: "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT";
-HINT_GAMECONTROLLER_USE_BUTTON_LABELS         :: "SDL_GAMECONTROLLER_USE_BUTTON_LABELS";
-HINT_GRAB_KEYBOARD                            :: "SDL_GRAB_KEYBOARD";
-HINT_IDLE_TIMER_DISABLED                      :: "SDL_IOS_IDLE_TIMER_DISABLED";
-HINT_IME_INTERNAL_EDITING                     :: "SDL_IME_INTERNAL_EDITING";
-HINT_IOS_HIDE_HOME_INDICATOR                  :: "SDL_IOS_HIDE_HOME_INDICATOR";
-HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS         :: "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS";
-HINT_JOYSTICK_HIDAPI                          :: "SDL_JOYSTICK_HIDAPI";
-HINT_JOYSTICK_HIDAPI_GAMECUBE                 :: "SDL_JOYSTICK_HIDAPI_GAMECUBE";
-HINT_JOYSTICK_HIDAPI_JOY_CONS                 :: "SDL_JOYSTICK_HIDAPI_JOY_CONS";
-HINT_JOYSTICK_HIDAPI_LUNA                     :: "SDL_JOYSTICK_HIDAPI_LUNA";
-HINT_JOYSTICK_HIDAPI_PS4                      :: "SDL_JOYSTICK_HIDAPI_PS4";
-HINT_JOYSTICK_HIDAPI_PS4_RUMBLE               :: "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE";
-HINT_JOYSTICK_HIDAPI_PS5                      :: "SDL_JOYSTICK_HIDAPI_PS5";
-HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED           :: "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED";
-HINT_JOYSTICK_HIDAPI_PS5_RUMBLE               :: "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE";
-HINT_JOYSTICK_HIDAPI_STADIA                   :: "SDL_JOYSTICK_HIDAPI_STADIA";
-HINT_JOYSTICK_HIDAPI_STEAM                    :: "SDL_JOYSTICK_HIDAPI_STEAM";
-HINT_JOYSTICK_HIDAPI_SWITCH                   :: "SDL_JOYSTICK_HIDAPI_SWITCH";
-HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED          :: "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED";
-HINT_JOYSTICK_HIDAPI_XBOX                     :: "SDL_JOYSTICK_HIDAPI_XBOX";
-HINT_JOYSTICK_RAWINPUT                        :: "SDL_JOYSTICK_RAWINPUT";
-HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT       :: "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT";
-HINT_JOYSTICK_THREAD                          :: "SDL_JOYSTICK_THREAD";
-HINT_KMSDRM_REQUIRE_DRM_MASTER                :: "SDL_KMSDRM_REQUIRE_DRM_MASTER";
-HINT_LINUX_JOYSTICK_DEADZONES                 :: "SDL_LINUX_JOYSTICK_DEADZONES";
-HINT_MAC_BACKGROUND_APP                       :: "SDL_MAC_BACKGROUND_APP";
-HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK       :: "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK";
-HINT_MOUSE_DOUBLE_CLICK_RADIUS                :: "SDL_MOUSE_DOUBLE_CLICK_RADIUS";
-HINT_MOUSE_DOUBLE_CLICK_TIME                  :: "SDL_MOUSE_DOUBLE_CLICK_TIME";
-HINT_MOUSE_FOCUS_CLICKTHROUGH                 :: "SDL_MOUSE_FOCUS_CLICKTHROUGH";
-HINT_MOUSE_NORMAL_SPEED_SCALE                 :: "SDL_MOUSE_NORMAL_SPEED_SCALE";
-HINT_MOUSE_RELATIVE_MODE_WARP                 :: "SDL_MOUSE_RELATIVE_MODE_WARP";
-HINT_MOUSE_RELATIVE_SCALING                   :: "SDL_MOUSE_RELATIVE_SCALING";
-HINT_MOUSE_RELATIVE_SPEED_SCALE               :: "SDL_MOUSE_RELATIVE_SPEED_SCALE";
-HINT_MOUSE_TOUCH_EVENTS                       :: "SDL_MOUSE_TOUCH_EVENTS";
-HINT_NO_SIGNAL_HANDLERS                       :: "SDL_NO_SIGNAL_HANDLERS";
-HINT_OPENGL_ES_DRIVER                         :: "SDL_OPENGL_ES_DRIVER";
-HINT_ORIENTATIONS                             :: "SDL_IOS_ORIENTATIONS";
-HINT_PREFERRED_LOCALES                        :: "SDL_PREFERRED_LOCALES";
-HINT_QTWAYLAND_CONTENT_ORIENTATION            :: "SDL_QTWAYLAND_CONTENT_ORIENTATION";
-HINT_QTWAYLAND_WINDOW_FLAGS                   :: "SDL_QTWAYLAND_WINDOW_FLAGS";
-HINT_RENDER_BATCHING                          :: "SDL_RENDER_BATCHING";
-HINT_RENDER_DIRECT3D11_DEBUG                  :: "SDL_RENDER_DIRECT3D11_DEBUG";
-HINT_RENDER_DIRECT3D_THREADSAFE               :: "SDL_RENDER_DIRECT3D_THREADSAFE";
-HINT_RENDER_DRIVER                            :: "SDL_RENDER_DRIVER";
-HINT_RENDER_LOGICAL_SIZE_MODE                 :: "SDL_RENDER_LOGICAL_SIZE_MODE";
-HINT_RENDER_OPENGL_SHADERS                    :: "SDL_RENDER_OPENGL_SHADERS";
-HINT_RENDER_SCALE_QUALITY                     :: "SDL_RENDER_SCALE_QUALITY";
-HINT_RENDER_VSYNC                             :: "SDL_RENDER_VSYNC";
-HINT_RETURN_KEY_HIDES_IME                     :: "SDL_RETURN_KEY_HIDES_IME";
-HINT_RPI_VIDEO_LAYER                          :: "SDL_RPI_VIDEO_LAYER";
-HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL      :: "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL";
-HINT_THREAD_PRIORITY_POLICY                   :: "SDL_THREAD_PRIORITY_POLICY";
-HINT_THREAD_STACK_SIZE                        :: "SDL_THREAD_STACK_SIZE";
-HINT_TIMER_RESOLUTION                         :: "SDL_TIMER_RESOLUTION";
-HINT_TOUCH_MOUSE_EVENTS                       :: "SDL_TOUCH_MOUSE_EVENTS";
-HINT_TV_REMOTE_AS_JOYSTICK                    :: "SDL_TV_REMOTE_AS_JOYSTICK";
-HINT_VIDEO_ALLOW_SCREENSAVER                  :: "SDL_VIDEO_ALLOW_SCREENSAVER";
-HINT_VIDEO_DOUBLE_BUFFER                      :: "SDL_VIDEO_DOUBLE_BUFFER";
-HINT_VIDEO_EXTERNAL_CONTEXT                   :: "SDL_VIDEO_EXTERNAL_CONTEXT";
-HINT_VIDEO_HIGHDPI_DISABLED                   :: "SDL_VIDEO_HIGHDPI_DISABLED";
-HINT_VIDEO_MAC_FULLSCREEN_SPACES              :: "SDL_VIDEO_MAC_FULLSCREEN_SPACES";
-HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS             :: "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS";
-HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR             :: "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR";
-HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT          :: "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT";
-HINT_VIDEO_WIN_D3DCOMPILER                    :: "SDL_VIDEO_WIN_D3DCOMPILER";
-HINT_VIDEO_X11_FORCE_EGL                      :: "SDL_VIDEO_X11_FORCE_EGL";
-HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR       :: "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR";
-HINT_VIDEO_X11_NET_WM_PING                    :: "SDL_VIDEO_X11_NET_WM_PING";
-HINT_VIDEO_X11_WINDOW_VISUALID                :: "SDL_VIDEO_X11_WINDOW_VISUALID";
-HINT_VIDEO_X11_XINERAMA                       :: "SDL_VIDEO_X11_XINERAMA";
-HINT_VIDEO_X11_XRANDR                         :: "SDL_VIDEO_X11_XRANDR";
-HINT_VIDEO_X11_XVIDMODE                       :: "SDL_VIDEO_X11_XVIDMODE";
-HINT_WAVE_FACT_CHUNK                          :: "SDL_WAVE_FACT_CHUNK";
-HINT_WAVE_RIFF_CHUNK_SIZE                     :: "SDL_WAVE_RIFF_CHUNK_SIZE";
-HINT_WAVE_TRUNCATION                          :: "SDL_WAVE_TRUNCATION";
-HINT_WINDOWS_DISABLE_THREAD_NAMING            :: "SDL_WINDOWS_DISABLE_THREAD_NAMING";
-HINT_WINDOWS_ENABLE_MESSAGELOOP               :: "SDL_WINDOWS_ENABLE_MESSAGELOOP";
-HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS    :: "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS";
-HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL           :: "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL";
-HINT_WINDOWS_INTRESOURCE_ICON                 :: "SDL_WINDOWS_INTRESOURCE_ICON";
-HINT_WINDOWS_INTRESOURCE_ICON_SMALL           :: "SDL_WINDOWS_INTRESOURCE_ICON_SMALL";
-HINT_WINDOWS_NO_CLOSE_ON_ALT_F4               :: "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4";
-HINT_WINDOWS_USE_D3D9EX                       :: "SDL_WINDOWS_USE_D3D9EX";
-HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN  :: "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN";
-HINT_WINRT_HANDLE_BACK_BUTTON                 :: "SDL_WINRT_HANDLE_BACK_BUTTON";
-HINT_WINRT_PRIVACY_POLICY_LABEL               :: "SDL_WINRT_PRIVACY_POLICY_LABEL";
-HINT_WINRT_PRIVACY_POLICY_URL                 :: "SDL_WINRT_PRIVACY_POLICY_URL";
-HINT_X11_FORCE_OVERRIDE_REDIRECT              :: "SDL_X11_FORCE_OVERRIDE_REDIRECT";
-HINT_XINPUT_ENABLED                           :: "SDL_XINPUT_ENABLED";
-HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING          :: "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING";
-HINT_AUDIO_INCLUDE_MONITORS                   :: "SDL_AUDIO_INCLUDE_MONITORS";
+HINT_ACCELEROMETER_AS_JOYSTICK                :: "SDL_ACCELEROMETER_AS_JOYSTICK"
+HINT_ALLOW_ALT_TAB_WHILE_GRABBED              :: "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"
+HINT_ALLOW_TOPMOST                            :: "SDL_ALLOW_TOPMOST"
+HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION  :: "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"
+HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION :: "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"
+HINT_ANDROID_BLOCK_ON_PAUSE                   :: "SDL_ANDROID_BLOCK_ON_PAUSE"
+HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO        :: "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO"
+HINT_ANDROID_TRAP_BACK_BUTTON                 :: "SDL_ANDROID_TRAP_BACK_BUTTON"
+HINT_APPLE_TV_CONTROLLER_UI_EVENTS            :: "SDL_APPLE_TV_CONTROLLER_UI_EVENTS"
+HINT_APPLE_TV_REMOTE_ALLOW_ROTATION           :: "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"
+HINT_AUDIO_CATEGORY                           :: "SDL_AUDIO_CATEGORY"
+HINT_AUDIO_DEVICE_APP_NAME                    :: "SDL_AUDIO_DEVICE_APP_NAME"
+HINT_AUDIO_DEVICE_STREAM_NAME                 :: "SDL_AUDIO_DEVICE_STREAM_NAME"
+HINT_AUDIO_DEVICE_STREAM_ROLE                 :: "SDL_AUDIO_DEVICE_STREAM_ROLE"
+HINT_AUDIO_RESAMPLING_MODE                    :: "SDL_AUDIO_RESAMPLING_MODE"
+HINT_AUTO_UPDATE_JOYSTICKS                    :: "SDL_AUTO_UPDATE_JOYSTICKS"
+HINT_AUTO_UPDATE_SENSORS                      :: "SDL_AUTO_UPDATE_SENSORS"
+HINT_BMP_SAVE_LEGACY_FORMAT                   :: "SDL_BMP_SAVE_LEGACY_FORMAT"
+HINT_DISPLAY_USABLE_BOUNDS                    :: "SDL_DISPLAY_USABLE_BOUNDS"
+HINT_EMSCRIPTEN_ASYNCIFY                      :: "SDL_EMSCRIPTEN_ASYNCIFY"
+HINT_EMSCRIPTEN_KEYBOARD_ELEMENT              :: "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"
+HINT_ENABLE_STEAM_CONTROLLERS                 :: "SDL_ENABLE_STEAM_CONTROLLERS"
+HINT_EVENT_LOGGING                            :: "SDL_EVENT_LOGGING"
+HINT_FRAMEBUFFER_ACCELERATION                 :: "SDL_FRAMEBUFFER_ACCELERATION"
+HINT_GAMECONTROLLERCONFIG                     :: "SDL_GAMECONTROLLERCONFIG"
+HINT_GAMECONTROLLERCONFIG_FILE                :: "SDL_GAMECONTROLLERCONFIG_FILE"
+HINT_GAMECONTROLLERTYPE                       :: "SDL_GAMECONTROLLERTYPE"
+HINT_GAMECONTROLLER_IGNORE_DEVICES            :: "SDL_GAMECONTROLLER_IGNORE_DEVICES"
+HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT     :: "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"
+HINT_GAMECONTROLLER_USE_BUTTON_LABELS         :: "SDL_GAMECONTROLLER_USE_BUTTON_LABELS"
+HINT_GRAB_KEYBOARD                            :: "SDL_GRAB_KEYBOARD"
+HINT_IDLE_TIMER_DISABLED                      :: "SDL_IOS_IDLE_TIMER_DISABLED"
+HINT_IME_INTERNAL_EDITING                     :: "SDL_IME_INTERNAL_EDITING"
+HINT_IOS_HIDE_HOME_INDICATOR                  :: "SDL_IOS_HIDE_HOME_INDICATOR"
+HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS         :: "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"
+HINT_JOYSTICK_HIDAPI                          :: "SDL_JOYSTICK_HIDAPI"
+HINT_JOYSTICK_HIDAPI_GAMECUBE                 :: "SDL_JOYSTICK_HIDAPI_GAMECUBE"
+HINT_JOYSTICK_HIDAPI_JOY_CONS                 :: "SDL_JOYSTICK_HIDAPI_JOY_CONS"
+HINT_JOYSTICK_HIDAPI_LUNA                     :: "SDL_JOYSTICK_HIDAPI_LUNA"
+HINT_JOYSTICK_HIDAPI_PS4                      :: "SDL_JOYSTICK_HIDAPI_PS4"
+HINT_JOYSTICK_HIDAPI_PS4_RUMBLE               :: "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"
+HINT_JOYSTICK_HIDAPI_PS5                      :: "SDL_JOYSTICK_HIDAPI_PS5"
+HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED           :: "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED"
+HINT_JOYSTICK_HIDAPI_PS5_RUMBLE               :: "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE"
+HINT_JOYSTICK_HIDAPI_STADIA                   :: "SDL_JOYSTICK_HIDAPI_STADIA"
+HINT_JOYSTICK_HIDAPI_STEAM                    :: "SDL_JOYSTICK_HIDAPI_STEAM"
+HINT_JOYSTICK_HIDAPI_SWITCH                   :: "SDL_JOYSTICK_HIDAPI_SWITCH"
+HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED          :: "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED"
+HINT_JOYSTICK_HIDAPI_XBOX                     :: "SDL_JOYSTICK_HIDAPI_XBOX"
+HINT_JOYSTICK_RAWINPUT                        :: "SDL_JOYSTICK_RAWINPUT"
+HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT       :: "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT"
+HINT_JOYSTICK_THREAD                          :: "SDL_JOYSTICK_THREAD"
+HINT_KMSDRM_REQUIRE_DRM_MASTER                :: "SDL_KMSDRM_REQUIRE_DRM_MASTER"
+HINT_LINUX_JOYSTICK_DEADZONES                 :: "SDL_LINUX_JOYSTICK_DEADZONES"
+HINT_MAC_BACKGROUND_APP                       :: "SDL_MAC_BACKGROUND_APP"
+HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK       :: "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
+HINT_MOUSE_DOUBLE_CLICK_RADIUS                :: "SDL_MOUSE_DOUBLE_CLICK_RADIUS"
+HINT_MOUSE_DOUBLE_CLICK_TIME                  :: "SDL_MOUSE_DOUBLE_CLICK_TIME"
+HINT_MOUSE_FOCUS_CLICKTHROUGH                 :: "SDL_MOUSE_FOCUS_CLICKTHROUGH"
+HINT_MOUSE_NORMAL_SPEED_SCALE                 :: "SDL_MOUSE_NORMAL_SPEED_SCALE"
+HINT_MOUSE_RELATIVE_MODE_WARP                 :: "SDL_MOUSE_RELATIVE_MODE_WARP"
+HINT_MOUSE_RELATIVE_SCALING                   :: "SDL_MOUSE_RELATIVE_SCALING"
+HINT_MOUSE_RELATIVE_SPEED_SCALE               :: "SDL_MOUSE_RELATIVE_SPEED_SCALE"
+HINT_MOUSE_TOUCH_EVENTS                       :: "SDL_MOUSE_TOUCH_EVENTS"
+HINT_NO_SIGNAL_HANDLERS                       :: "SDL_NO_SIGNAL_HANDLERS"
+HINT_OPENGL_ES_DRIVER                         :: "SDL_OPENGL_ES_DRIVER"
+HINT_ORIENTATIONS                             :: "SDL_IOS_ORIENTATIONS"
+HINT_PREFERRED_LOCALES                        :: "SDL_PREFERRED_LOCALES"
+HINT_QTWAYLAND_CONTENT_ORIENTATION            :: "SDL_QTWAYLAND_CONTENT_ORIENTATION"
+HINT_QTWAYLAND_WINDOW_FLAGS                   :: "SDL_QTWAYLAND_WINDOW_FLAGS"
+HINT_RENDER_BATCHING                          :: "SDL_RENDER_BATCHING"
+HINT_RENDER_DIRECT3D11_DEBUG                  :: "SDL_RENDER_DIRECT3D11_DEBUG"
+HINT_RENDER_DIRECT3D_THREADSAFE               :: "SDL_RENDER_DIRECT3D_THREADSAFE"
+HINT_RENDER_DRIVER                            :: "SDL_RENDER_DRIVER"
+HINT_RENDER_LOGICAL_SIZE_MODE                 :: "SDL_RENDER_LOGICAL_SIZE_MODE"
+HINT_RENDER_OPENGL_SHADERS                    :: "SDL_RENDER_OPENGL_SHADERS"
+HINT_RENDER_SCALE_QUALITY                     :: "SDL_RENDER_SCALE_QUALITY"
+HINT_RENDER_VSYNC                             :: "SDL_RENDER_VSYNC"
+HINT_RETURN_KEY_HIDES_IME                     :: "SDL_RETURN_KEY_HIDES_IME"
+HINT_RPI_VIDEO_LAYER                          :: "SDL_RPI_VIDEO_LAYER"
+HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL      :: "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL"
+HINT_THREAD_PRIORITY_POLICY                   :: "SDL_THREAD_PRIORITY_POLICY"
+HINT_THREAD_STACK_SIZE                        :: "SDL_THREAD_STACK_SIZE"
+HINT_TIMER_RESOLUTION                         :: "SDL_TIMER_RESOLUTION"
+HINT_TOUCH_MOUSE_EVENTS                       :: "SDL_TOUCH_MOUSE_EVENTS"
+HINT_TV_REMOTE_AS_JOYSTICK                    :: "SDL_TV_REMOTE_AS_JOYSTICK"
+HINT_VIDEO_ALLOW_SCREENSAVER                  :: "SDL_VIDEO_ALLOW_SCREENSAVER"
+HINT_VIDEO_DOUBLE_BUFFER                      :: "SDL_VIDEO_DOUBLE_BUFFER"
+HINT_VIDEO_EXTERNAL_CONTEXT                   :: "SDL_VIDEO_EXTERNAL_CONTEXT"
+HINT_VIDEO_HIGHDPI_DISABLED                   :: "SDL_VIDEO_HIGHDPI_DISABLED"
+HINT_VIDEO_MAC_FULLSCREEN_SPACES              :: "SDL_VIDEO_MAC_FULLSCREEN_SPACES"
+HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS             :: "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"
+HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR             :: "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR"
+HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT          :: "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"
+HINT_VIDEO_WIN_D3DCOMPILER                    :: "SDL_VIDEO_WIN_D3DCOMPILER"
+HINT_VIDEO_X11_FORCE_EGL                      :: "SDL_VIDEO_X11_FORCE_EGL"
+HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR       :: "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"
+HINT_VIDEO_X11_NET_WM_PING                    :: "SDL_VIDEO_X11_NET_WM_PING"
+HINT_VIDEO_X11_WINDOW_VISUALID                :: "SDL_VIDEO_X11_WINDOW_VISUALID"
+HINT_VIDEO_X11_XINERAMA                       :: "SDL_VIDEO_X11_XINERAMA"
+HINT_VIDEO_X11_XRANDR                         :: "SDL_VIDEO_X11_XRANDR"
+HINT_VIDEO_X11_XVIDMODE                       :: "SDL_VIDEO_X11_XVIDMODE"
+HINT_WAVE_FACT_CHUNK                          :: "SDL_WAVE_FACT_CHUNK"
+HINT_WAVE_RIFF_CHUNK_SIZE                     :: "SDL_WAVE_RIFF_CHUNK_SIZE"
+HINT_WAVE_TRUNCATION                          :: "SDL_WAVE_TRUNCATION"
+HINT_WINDOWS_DISABLE_THREAD_NAMING            :: "SDL_WINDOWS_DISABLE_THREAD_NAMING"
+HINT_WINDOWS_ENABLE_MESSAGELOOP               :: "SDL_WINDOWS_ENABLE_MESSAGELOOP"
+HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS    :: "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS"
+HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL           :: "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"
+HINT_WINDOWS_INTRESOURCE_ICON                 :: "SDL_WINDOWS_INTRESOURCE_ICON"
+HINT_WINDOWS_INTRESOURCE_ICON_SMALL           :: "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"
+HINT_WINDOWS_NO_CLOSE_ON_ALT_F4               :: "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"
+HINT_WINDOWS_USE_D3D9EX                       :: "SDL_WINDOWS_USE_D3D9EX"
+HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN  :: "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"
+HINT_WINRT_HANDLE_BACK_BUTTON                 :: "SDL_WINRT_HANDLE_BACK_BUTTON"
+HINT_WINRT_PRIVACY_POLICY_LABEL               :: "SDL_WINRT_PRIVACY_POLICY_LABEL"
+HINT_WINRT_PRIVACY_POLICY_URL                 :: "SDL_WINRT_PRIVACY_POLICY_URL"
+HINT_X11_FORCE_OVERRIDE_REDIRECT              :: "SDL_X11_FORCE_OVERRIDE_REDIRECT"
+HINT_XINPUT_ENABLED                           :: "SDL_XINPUT_ENABLED"
+HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING          :: "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING"
+HINT_AUDIO_INCLUDE_MONITORS                   :: "SDL_AUDIO_INCLUDE_MONITORS"
 
 HintPriority :: enum c.int {
 	DEFAULT,
@@ -135,7 +135,7 @@ HintPriority :: enum c.int {
 	OVERRIDE,
 }
 
-HintCallback :: proc "c" (userdata: rawptr, name, oldValue, newValue: cstring);
+HintCallback :: proc "c" (userdata: rawptr, name, oldValue, newValue: cstring)
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 14 - 14
vendor/sdl2/sdl_joystick.odin

@@ -7,13 +7,13 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-Joystick :: struct {};
+Joystick :: struct {}
 
 JoystickGUID :: struct {
 	data: [16]u8,
 }
 
-JoystickID :: distinct i32;
+JoystickID :: distinct i32
 
 JoystickType :: enum c.int {
 	UNKNOWN,
@@ -38,20 +38,20 @@ JoystickPowerLevel :: enum c.int {
 	MAX,
 }
 
-IPHONE_MAX_GFORCE :: 5.0;
+IPHONE_MAX_GFORCE :: 5.0
 
-JOYSTICK_AXIS_MAX :: +32767;
-JOYSTICK_AXIS_MIN :: -32768;
+JOYSTICK_AXIS_MAX :: +32767
+JOYSTICK_AXIS_MIN :: -32768
 
-HAT_CENTERED  :: 0x00;
-HAT_UP        :: 0x01;
-HAT_RIGHT     :: 0x02;
-HAT_DOWN      :: 0x04;
-HAT_LEFT      :: 0x08;
-HAT_RIGHTUP   :: HAT_RIGHT|HAT_UP;
-HAT_RIGHTDOWN :: HAT_RIGHT|HAT_DOWN;
-HAT_LEFTUP    :: HAT_LEFT|HAT_UP;
-HAT_LEFTDOWN  :: HAT_LEFT|HAT_DOWN;
+HAT_CENTERED  :: 0x00
+HAT_UP        :: 0x01
+HAT_RIGHT     :: 0x02
+HAT_DOWN      :: 0x04
+HAT_LEFT      :: 0x08
+HAT_RIGHTUP   :: HAT_RIGHT|HAT_UP
+HAT_RIGHTDOWN :: HAT_RIGHT|HAT_DOWN
+HAT_LEFTUP    :: HAT_LEFT|HAT_UP
+HAT_LEFTDOWN  :: HAT_LEFT|HAT_DOWN
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 4 - 4
vendor/sdl2/sdl_keyboard.odin

@@ -34,12 +34,12 @@ foreign lib {
 }
 
 GetKeyboardStateAsSlice :: proc "c" () -> []u8 {
-	numkeys: c.int;
-	keys := GetKeyboardState(&numkeys);
+	numkeys: c.int
+	keys := GetKeyboardState(&numkeys)
 	if keys != nil {
-		return keys[:numkeys];
+		return keys[:numkeys]
 	}
-	return nil;
+	return nil
 }
 
 GetModState :: #force_inline proc "c" () -> Keymod { return transmute(Keymod)u16(SDL_GetModState()) }

+ 19 - 19
vendor/sdl2/sdl_keycode.odin

@@ -1,9 +1,9 @@
 package sdl2
 
 
-SCANCODE_MASK :: 1<<30;
+SCANCODE_MASK :: 1<<30
 SCANCODE_TO_KEYCODE :: #force_inline proc "c" (X: Scancode) -> KeyCode {
-	return KeyCode(i32(X) | SCANCODE_MASK);
+	return KeyCode(i32(X) | SCANCODE_MASK)
 }
 
 KeyCode :: enum i32 {
@@ -309,22 +309,22 @@ KeymodFlag :: enum u16 {
 	RESERVED = 0xf,
 }
 
-Keymod :: distinct bit_set[KeymodFlag; u16];
+Keymod :: distinct bit_set[KeymodFlag; u16]
 
-KMOD_NONE     :: Keymod{};
-KMOD_LSHIFT   :: Keymod{.LSHIFT};
-KMOD_RSHIFT   :: Keymod{.RSHIFT};
-KMOD_LCTRL    :: Keymod{.LCTRL};
-KMOD_RCTRL    :: Keymod{.RCTRL};
-KMOD_LALT     :: Keymod{.LALT};
-KMOD_RALT     :: Keymod{.RALT};
-KMOD_LGUI     :: Keymod{.LGUI};
-KMOD_RGUI     :: Keymod{.RGUI};
-KMOD_NUM      :: Keymod{.NUM};
-KMOD_CAPS     :: Keymod{.CAPS};
-KMOD_MODE     :: Keymod{.MODE};
-KMOD_RESERVED :: Keymod{.RESERVED};
-KMOD_CTRL     :: Keymod{.LCTRL, .RCTRL};
-KMOD_SHIFT    :: Keymod{.LSHIFT, .RSHIFT};
-KMOD_ALT      :: Keymod{.LALT, .RALT};
+KMOD_NONE     :: Keymod{}
+KMOD_LSHIFT   :: Keymod{.LSHIFT}
+KMOD_RSHIFT   :: Keymod{.RSHIFT}
+KMOD_LCTRL    :: Keymod{.LCTRL}
+KMOD_RCTRL    :: Keymod{.RCTRL}
+KMOD_LALT     :: Keymod{.LALT}
+KMOD_RALT     :: Keymod{.RALT}
+KMOD_LGUI     :: Keymod{.LGUI}
+KMOD_RGUI     :: Keymod{.RGUI}
+KMOD_NUM      :: Keymod{.NUM}
+KMOD_CAPS     :: Keymod{.CAPS}
+KMOD_MODE     :: Keymod{.MODE}
+KMOD_RESERVED :: Keymod{.RESERVED}
+KMOD_CTRL     :: Keymod{.LCTRL, .RCTRL}
+KMOD_SHIFT    :: Keymod{.LSHIFT, .RSHIFT}
+KMOD_ALT      :: Keymod{.LALT, .RALT}
 KMOD_GUI      :: Keymod{.LGUI, .RGUI};

+ 2 - 2
vendor/sdl2/sdl_log.odin

@@ -7,7 +7,7 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-MAX_LOG_MESSAGE :: 4096;
+MAX_LOG_MESSAGE :: 4096
 
 LogCategory :: enum c.int {
 	APPLICATION,
@@ -54,7 +54,7 @@ LogPriority :: enum c.int {
 	NUM,
 }
 
-LogOutputFunction :: proc "c" (userdata: rawptr, category: LogCategory, priority: LogPriority, message: cstring);
+LogOutputFunction :: proc "c" (userdata: rawptr, category: LogCategory, priority: LogPriority, message: cstring)
 
 
 @(default_calling_convention="c", link_prefix="SDL_")

+ 9 - 9
vendor/sdl2/sdl_messagebox.odin

@@ -17,22 +17,22 @@ MessageBoxFlag :: enum u32 {
 }
 
 
-MessageBoxFlags :: distinct bit_set[MessageBoxFlag; u32];
+MessageBoxFlags :: distinct bit_set[MessageBoxFlag; u32]
 
-MESSAGEBOX_ERROR                 :: MessageBoxFlags{.ERROR};
-MESSAGEBOX_WARNING               :: MessageBoxFlags{.WARNING};
-MESSAGEBOX_INFORMATION           :: MessageBoxFlags{.INFORMATION};
-MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT :: MessageBoxFlags{.BUTTONS_LEFT_TO_RIGHT};
-MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT :: MessageBoxFlags{.BUTTONS_RIGHT_TO_LEFT};
+MESSAGEBOX_ERROR                 :: MessageBoxFlags{.ERROR}
+MESSAGEBOX_WARNING               :: MessageBoxFlags{.WARNING}
+MESSAGEBOX_INFORMATION           :: MessageBoxFlags{.INFORMATION}
+MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT :: MessageBoxFlags{.BUTTONS_LEFT_TO_RIGHT}
+MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT :: MessageBoxFlags{.BUTTONS_RIGHT_TO_LEFT}
 
 MessageBoxButtonFlag :: enum u32 {
 	RETURNKEY_DEFAULT = 0,  /**< Marks the default button when return is hit */
 	ESCAPEKEY_DEFAULT = 1,  /**< Marks the default button when escape is hit */
 }
-MessageBoxButtonFlags :: distinct bit_set[MessageBoxButtonFlag; u32];
+MessageBoxButtonFlags :: distinct bit_set[MessageBoxButtonFlag; u32]
 
-MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT :: MessageBoxButtonFlags{.RETURNKEY_DEFAULT};
-MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT :: MessageBoxButtonFlags{.ESCAPEKEY_DEFAULT};
+MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT :: MessageBoxButtonFlags{.RETURNKEY_DEFAULT}
+MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT :: MessageBoxButtonFlags{.ESCAPEKEY_DEFAULT}
 
 MessageBoxButtonData :: struct {
 	flags:    MessageBoxButtonFlags, /**< ::SDL_MessageBoxButtonFlags */

+ 1 - 1
vendor/sdl2/sdl_metal.odin

@@ -7,7 +7,7 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-MetalView :: distinct rawptr;
+MetalView :: distinct rawptr
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 11 - 11
vendor/sdl2/sdl_mouse.odin

@@ -7,19 +7,19 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-Cursor :: struct {};
+Cursor :: struct {}
 
 BUTTON :: #force_inline proc "c" (X: c.int) -> c.int { return 1 << u32(X-1) }
-BUTTON_LEFT     :: 1;
-BUTTON_MIDDLE   :: 2;
-BUTTON_RIGHT    :: 3;
-BUTTON_X1       :: 4;
-BUTTON_X2       :: 5;
-BUTTON_LMASK    :: 1<<(BUTTON_LEFT-1);
-BUTTON_MMASK    :: 1<<(BUTTON_MIDDLE-1);
-BUTTON_RMASK    :: 1<<(BUTTON_RIGHT-1);
-BUTTON_X1MASK   :: 1<<(BUTTON_X1-1);
-BUTTON_X2MASK   :: 1<<(BUTTON_X2-1);
+BUTTON_LEFT     :: 1
+BUTTON_MIDDLE   :: 2
+BUTTON_RIGHT    :: 3
+BUTTON_X1       :: 4
+BUTTON_X2       :: 5
+BUTTON_LMASK    :: 1<<(BUTTON_LEFT-1)
+BUTTON_MMASK    :: 1<<(BUTTON_MIDDLE-1)
+BUTTON_RMASK    :: 1<<(BUTTON_RIGHT-1)
+BUTTON_X1MASK   :: 1<<(BUTTON_X1-1)
+BUTTON_X2MASK   :: 1<<(BUTTON_X2-1)
 
 SystemCursor :: enum c.int {
 	ARROW,     /**< Arrow */

+ 8 - 8
vendor/sdl2/sdl_mutex.odin

@@ -7,18 +7,18 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-MUTEX_TIMEDOUT :: 1;
-MUTEX_MAXWAIT  :: ~u32(0);
+MUTEX_TIMEDOUT :: 1
+MUTEX_MAXWAIT  :: ~u32(0)
 
-mutex :: struct {};
+mutex :: struct {}
 
-semaphore :: struct {};
-sem :: semaphore;
+semaphore :: struct {}
+sem :: semaphore
 
-cond :: struct {};
+cond :: struct {}
 
-mutexP :: LockMutex;
-mutexV :: UnlockMutex;
+mutexP :: LockMutex
+mutexV :: UnlockMutex
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 48 - 48
vendor/sdl2/sdl_pixels.odin

@@ -7,63 +7,63 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-ALPHA_OPAQUE      :: 255;
-ALPHA_TRANSPARENT ::   0;
-
-PIXELTYPE_UNKNOWN  ::  0;
-PIXELTYPE_INDEX1   ::  1;
-PIXELTYPE_INDEX4   ::  2;
-PIXELTYPE_INDEX8   ::  3;
-PIXELTYPE_PACKED8  ::  4;
-PIXELTYPE_PACKED16 ::  5;
-PIXELTYPE_PACKED32 ::  6;
-PIXELTYPE_ARRAYU8  ::  7;
-PIXELTYPE_ARRAYU16 ::  8;
-PIXELTYPE_ARRAYU32 ::  9;
-PIXELTYPE_ARRAYF16 :: 10;
-PIXELTYPE_ARRAYF3  :: 11;
-
-BITMAPORDER_NONE :: 0;
-BITMAPORDER_4321 :: 1;
-BITMAPORDER_1234 :: 2;
-
-PACKEDORDER_NONE :: 0;
-PACKEDORDER_XRGB :: 1;
-PACKEDORDER_RGBX :: 2;
-PACKEDORDER_ARGB :: 3;
-PACKEDORDER_RGBA :: 4;
-PACKEDORDER_XBGR :: 5;
-PACKEDORDER_BGRX :: 6;
-PACKEDORDER_ABGR :: 7;
-PACKEDORDER_BGRA :: 8;
+ALPHA_OPAQUE      :: 255
+ALPHA_TRANSPARENT ::   0
+
+PIXELTYPE_UNKNOWN  ::  0
+PIXELTYPE_INDEX1   ::  1
+PIXELTYPE_INDEX4   ::  2
+PIXELTYPE_INDEX8   ::  3
+PIXELTYPE_PACKED8  ::  4
+PIXELTYPE_PACKED16 ::  5
+PIXELTYPE_PACKED32 ::  6
+PIXELTYPE_ARRAYU8  ::  7
+PIXELTYPE_ARRAYU16 ::  8
+PIXELTYPE_ARRAYU32 ::  9
+PIXELTYPE_ARRAYF16 :: 10
+PIXELTYPE_ARRAYF3  :: 11
+
+BITMAPORDER_NONE :: 0
+BITMAPORDER_4321 :: 1
+BITMAPORDER_1234 :: 2
+
+PACKEDORDER_NONE :: 0
+PACKEDORDER_XRGB :: 1
+PACKEDORDER_RGBX :: 2
+PACKEDORDER_ARGB :: 3
+PACKEDORDER_RGBA :: 4
+PACKEDORDER_XBGR :: 5
+PACKEDORDER_BGRX :: 6
+PACKEDORDER_ABGR :: 7
+PACKEDORDER_BGRA :: 8
 
 /** Array component order, low byte -> high byte. */
 /* !!! FIXME: in 2.1, make these not overlap differently with
    !!! FIXME:  SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */
-ARRAYORDER_NONE :: 0;
-ARRAYORDER_RGB  :: 1;
-ARRAYORDER_RGBA :: 2;
-ARRAYORDER_ARGB :: 3;
-ARRAYORDER_BGR  :: 4;
-ARRAYORDER_BGRA :: 5;
-ARRAYORDER_ABG  :: 6;
+ARRAYORDER_NONE :: 0
+ARRAYORDER_RGB  :: 1
+ARRAYORDER_RGBA :: 2
+ARRAYORDER_ARGB :: 3
+ARRAYORDER_BGR  :: 4
+ARRAYORDER_BGRA :: 5
+ARRAYORDER_ABG  :: 6
 
-PACKEDLAYOUT_NONE    :: 0;
-PACKEDLAYOUT_332     :: 1;
-PACKEDLAYOUT_4444    :: 2;
-PACKEDLAYOUT_1555    :: 3;
-PACKEDLAYOUT_5551    :: 4;
-PACKEDLAYOUT_565     :: 5;
-PACKEDLAYOUT_8888    :: 6;
-PACKEDLAYOUT_2101010 :: 7;
-PACKEDLAYOUT_101010  :: 8;
+PACKEDLAYOUT_NONE    :: 0
+PACKEDLAYOUT_332     :: 1
+PACKEDLAYOUT_4444    :: 2
+PACKEDLAYOUT_1555    :: 3
+PACKEDLAYOUT_5551    :: 4
+PACKEDLAYOUT_565     :: 5
+PACKEDLAYOUT_8888    :: 6
+PACKEDLAYOUT_2101010 :: 7
+PACKEDLAYOUT_101010  :: 8
 
 
 
-DEFINE_PIXELFOURCC :: FOURCC;
+DEFINE_PIXELFOURCC :: FOURCC
 
 DEFINE_PIXELFORMAT :: #force_inline proc "c" (type: u8, order: u8, layout, bits, bytes: u8) -> u32 {
-	return (1 << 28) | (u32(type) << 24) | (u32(order) << 20) | (u32(layout) << 16) | (u32(bits) << 8) | (u32(bytes) << 0);
+	return (1 << 28) | (u32(type) << 24) | (u32(order) << 20) | (u32(layout) << 16) | (u32(bits) << 8) | (u32(bytes) << 0)
 }
 
 
@@ -180,7 +180,7 @@ PixelFormatEnum :: enum u32 {
 }
 
 
-Colour :: Color;
+Colour :: Color
 Color :: struct {
 	r: u8,
 	g: u8,

+ 3 - 3
vendor/sdl2/sdl_rect.odin

@@ -29,15 +29,15 @@ FRect :: struct {
 }
 
 PointInRect :: proc(p, r: ^Rect) -> bool {
-	return bool((p.x >= r.x) && (p.x < (r.x + r.w)) && (p.y >= r.y) && (p.y < (r.y + r.h)));
+	return bool((p.x >= r.x) && (p.x < (r.x + r.w)) && (p.y >= r.y) && (p.y < (r.y + r.h)))
 }
 
 RectEmpty :: proc(r: ^Rect) -> bool {
-	return bool(r == nil|| r.w <= 0 || r.h <= 0);
+	return bool(r == nil|| r.w <= 0 || r.h <= 0)
 }
 
 RectEquals :: proc(a, b: ^Rect) -> bool {
-	return a != nil && b != nil && a^ == b^;
+	return a != nil && b != nil && a^ == b^
 }
 
 @(default_calling_convention="c", link_prefix="SDL_")

+ 10 - 10
vendor/sdl2/sdl_render.odin

@@ -14,12 +14,12 @@ RendererFlag :: enum u32 {
 	TARGETTEXTURE = 3, /**< The renderer supports rendering to texture */
 }
 
-RendererFlags :: distinct bit_set[RendererFlag; u32];
+RendererFlags :: distinct bit_set[RendererFlag; u32]
 
-RENDERER_SOFTWARE      :: RendererFlags{.SOFTWARE};
-RENDERER_ACCELERATED   :: RendererFlags{.ACCELERATED};
-RENDERER_PRESENTVSYNC  :: RendererFlags{.PRESENTVSYNC};
-RENDERER_TARGETTEXTURE :: RendererFlags{.TARGETTEXTURE};
+RENDERER_SOFTWARE      :: RendererFlags{.SOFTWARE}
+RENDERER_ACCELERATED   :: RendererFlags{.ACCELERATED}
+RENDERER_PRESENTVSYNC  :: RendererFlags{.PRESENTVSYNC}
+RENDERER_TARGETTEXTURE :: RendererFlags{.TARGETTEXTURE}
 
 RendererInfo :: struct {
 	name:                cstring,       /**< The name of the renderer */
@@ -48,9 +48,9 @@ TextureAccess :: enum c.int {
 	TARGET,    /**< Texture can be used as a render target */
 }
 
-SDL_TEXTUREMODULATE_NONE  :: 0x00000000; /**< No modulation */
-SDL_TEXTUREMODULATE_COLOR :: 0x00000001; /**< srcC = srcC * color */
-SDL_TEXTUREMODULATE_ALPHA :: 0x00000002; /**< srcA = srcA * alpha */
+SDL_TEXTUREMODULATE_NONE  :: 0x00000000 /**< No modulation */
+SDL_TEXTUREMODULATE_COLOR :: 0x00000001 /**< srcC = srcC * color */
+SDL_TEXTUREMODULATE_ALPHA :: 0x00000002 /**< srcA = srcA * alpha */
 
 /**
  * Flip constants for SDL_RenderCopyEx
@@ -61,9 +61,9 @@ RendererFlip :: enum c.int {
 	VERTICAL   = 0x00000002,    /**< flip vertically */
 }
 
-Renderer :: struct {};
+Renderer :: struct {}
 
-Texture :: struct {};
+Texture :: struct {}
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 10 - 10
vendor/sdl2/sdl_rwops.odin

@@ -8,13 +8,13 @@ when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
 /* RWops Types */
-RWOPS_UNKNOWN   :: 0; /**< Unknown stream type */
-RWOPS_WINFILE   :: 1; /**< Win32 file */
-RWOPS_STDFILE   :: 2; /**< Stdio file */
-RWOPS_JNIFILE   :: 3; /**< Android asset */
-RWOPS_MEMORY    :: 4; /**< Memory stream */
-RWOPS_MEMORY_RO :: 5; /**< Read-Only memory stream */
-RWOPS_VITAFILE  :: 6; /**< Vita file */
+RWOPS_UNKNOWN   :: 0 /**< Unknown stream type */
+RWOPS_WINFILE   :: 1 /**< Win32 file */
+RWOPS_STDFILE   :: 2 /**< Stdio file */
+RWOPS_JNIFILE   :: 3 /**< Android asset */
+RWOPS_MEMORY    :: 4 /**< Memory stream */
+RWOPS_MEMORY_RO :: 5 /**< Read-Only memory stream */
+RWOPS_VITAFILE  :: 6 /**< Vita file */
 
 
 /**
@@ -66,9 +66,9 @@ RWops :: struct {
 }
 
 
-SEEK_SET :: 0; /**< Seek from the beginning of data */
-SEEK_CUR :: 1; /**< Seek relative to current read point */
-SEEK_END :: 2; /**< Seek relative to the end of data */
+SEEK_SET :: 0 /**< Seek from the beginning of data */
+SEEK_CUR :: 1 /**< Seek relative to current read point */
+SEEK_END :: 2 /**< Seek relative to the end of data */
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 266 - 266
vendor/sdl2/sdl_scancode.odin

@@ -273,270 +273,270 @@ Scancode :: enum c.int {
 	NUM_SCANCODES = 512,
 }
 
-NUM_SCANCODES :: 512;
-
-
-
-
-SCANCODE_UNKNOWN :: Scancode.UNKNOWN;
-
-SCANCODE_A :: Scancode.A;
-SCANCODE_B :: Scancode.B;
-SCANCODE_C :: Scancode.C;
-SCANCODE_D :: Scancode.D;
-SCANCODE_E :: Scancode.E;
-SCANCODE_F :: Scancode.F;
-SCANCODE_G :: Scancode.G;
-SCANCODE_H :: Scancode.H;
-SCANCODE_I :: Scancode.I;
-SCANCODE_J :: Scancode.J;
-SCANCODE_K :: Scancode.K;
-SCANCODE_L :: Scancode.L;
-SCANCODE_M :: Scancode.M;
-SCANCODE_N :: Scancode.N;
-SCANCODE_O :: Scancode.O;
-SCANCODE_P :: Scancode.P;
-SCANCODE_Q :: Scancode.Q;
-SCANCODE_R :: Scancode.R;
-SCANCODE_S :: Scancode.S;
-SCANCODE_T :: Scancode.T;
-SCANCODE_U :: Scancode.U;
-SCANCODE_V :: Scancode.V;
-SCANCODE_W :: Scancode.W;
-SCANCODE_X :: Scancode.X;
-SCANCODE_Y :: Scancode.Y;
-SCANCODE_Z :: Scancode.Z;
-
-SCANCODE_1 :: Scancode.NUM1;
-SCANCODE_2 :: Scancode.NUM2;
-SCANCODE_3 :: Scancode.NUM3;
-SCANCODE_4 :: Scancode.NUM4;
-SCANCODE_5 :: Scancode.NUM5;
-SCANCODE_6 :: Scancode.NUM6;
-SCANCODE_7 :: Scancode.NUM7;
-SCANCODE_8 :: Scancode.NUM8;
-SCANCODE_9 :: Scancode.NUM9;
-SCANCODE_0 :: Scancode.NUM0;
-
-SCANCODE_RETURN    :: Scancode.RETURN;
-SCANCODE_ESCAPE    :: Scancode.ESCAPE;
-SCANCODE_BACKSPACE :: Scancode.BACKSPACE;
-SCANCODE_TAB       :: Scancode.TAB;
-SCANCODE_SPACE     :: Scancode.SPACE;
-
-SCANCODE_MINUS        :: Scancode.MINUS;
-SCANCODE_EQUALS       :: Scancode.EQUALS;
-SCANCODE_LEFTBRACKET  :: Scancode.LEFTBRACKET;
-SCANCODE_RIGHTBRACKET :: Scancode.RIGHTBRACKET;
-SCANCODE_BACKSLASH    :: Scancode.BACKSLASH;
-SCANCODE_NONUSHASH    :: Scancode.NONUSHASH;
-SCANCODE_SEMICOLON    :: Scancode.SEMICOLON;
-SCANCODE_APOSTROPHE   :: Scancode.APOSTROPHE;
-SCANCODE_GRAVE        :: Scancode.GRAVE;
-SCANCODE_COMMA        :: Scancode.COMMA;
-SCANCODE_PERIOD       :: Scancode.PERIOD;
-SCANCODE_SLASH        :: Scancode.SLASH;
-
-SCANCODE_CAPSLOCK :: Scancode.CAPSLOCK;
-
-SCANCODE_F1  :: Scancode.F1;
-SCANCODE_F2  :: Scancode.F2;
-SCANCODE_F3  :: Scancode.F3;
-SCANCODE_F4  :: Scancode.F4;
-SCANCODE_F5  :: Scancode.F5;
-SCANCODE_F6  :: Scancode.F6;
-SCANCODE_F7  :: Scancode.F7;
-SCANCODE_F8  :: Scancode.F8;
-SCANCODE_F9  :: Scancode.F9;
-SCANCODE_F10 :: Scancode.F10;
-SCANCODE_F11 :: Scancode.F11;
-SCANCODE_F12 :: Scancode.F12;
-
-SCANCODE_PRINTSCREEN :: Scancode.PRINTSCREEN;
-SCANCODE_SCROLLLOCK  :: Scancode.SCROLLLOCK;
-SCANCODE_PAUSE       :: Scancode.PAUSE;
-SCANCODE_INSERT      :: Scancode.INSERT;
-SCANCODE_HOME        :: Scancode.HOME;
-SCANCODE_PAGEUP      :: Scancode.PAGEUP;
-SCANCODE_DELETE      :: Scancode.DELETE;
-SCANCODE_END         :: Scancode.END;
-SCANCODE_PAGEDOWN    :: Scancode.PAGEDOWN;
-SCANCODE_RIGHT       :: Scancode.RIGHT;
-SCANCODE_LEFT        :: Scancode.LEFT;
-SCANCODE_DOWN        :: Scancode.DOWN;
-SCANCODE_UP          :: Scancode.UP;
-
-SCANCODE_NUMLOCKCLEAR :: Scancode.NUMLOCKCLEAR;
-SCANCODE_KP_DIVIDE    :: Scancode.KP_DIVIDE;
-SCANCODE_KP_MULTIPLY  :: Scancode.KP_MULTIPLY;
-SCANCODE_KP_MINUS     :: Scancode.KP_MINUS;
-SCANCODE_KP_PLUS      :: Scancode.KP_PLUS;
-SCANCODE_KP_ENTER     :: Scancode.KP_ENTER;
-SCANCODE_KP_1         :: Scancode.KP_1;
-SCANCODE_KP_2         :: Scancode.KP_2;
-SCANCODE_KP_3         :: Scancode.KP_3;
-SCANCODE_KP_4         :: Scancode.KP_4;
-SCANCODE_KP_5         :: Scancode.KP_5;
-SCANCODE_KP_6         :: Scancode.KP_6;
-SCANCODE_KP_7         :: Scancode.KP_7;
-SCANCODE_KP_8         :: Scancode.KP_8;
-SCANCODE_KP_9         :: Scancode.KP_9;
-SCANCODE_KP_0         :: Scancode.KP_0;
-SCANCODE_KP_PERIOD    :: Scancode.KP_PERIOD;
-
-SCANCODE_NONUSBACKSLASH :: Scancode.NONUSBACKSLASH;
-SCANCODE_APPLICATION    :: Scancode.APPLICATION;
-SCANCODE_POWER          :: Scancode.POWER;
-SCANCODE_KP_EQUALS      :: Scancode.KP_EQUALS;
-SCANCODE_F13            :: Scancode.F13;
-SCANCODE_F14            :: Scancode.F14;
-SCANCODE_F15            :: Scancode.F15;
-SCANCODE_F16            :: Scancode.F16;
-SCANCODE_F17            :: Scancode.F17;
-SCANCODE_F18            :: Scancode.F18;
-SCANCODE_F19            :: Scancode.F19;
-SCANCODE_F20            :: Scancode.F20;
-SCANCODE_F21            :: Scancode.F21;
-SCANCODE_F22            :: Scancode.F22;
-SCANCODE_F23            :: Scancode.F23;
-SCANCODE_F24            :: Scancode.F24;
-SCANCODE_EXECUTE        :: Scancode.EXECUTE;
-SCANCODE_HELP           :: Scancode.HELP;
-SCANCODE_MENU           :: Scancode.MENU;
-SCANCODE_SELECT         :: Scancode.SELECT;
-SCANCODE_STOP           :: Scancode.STOP;
-SCANCODE_AGAIN          :: Scancode.AGAIN;
-SCANCODE_UNDO           :: Scancode.UNDO;
-SCANCODE_CUT            :: Scancode.CUT;
-SCANCODE_COPY           :: Scancode.COPY;
-SCANCODE_PASTE          :: Scancode.PASTE;
-SCANCODE_FIND           :: Scancode.FIND;
-SCANCODE_MUTE           :: Scancode.MUTE;
-SCANCODE_VOLUMEUP       :: Scancode.VOLUMEUP;
-SCANCODE_VOLUMEDOWN     :: Scancode.VOLUMEDOWN;
-SCANCODE_KP_COMMA       :: Scancode.KP_COMMA;
-SCANCODE_KP_EQUALSAS400 :: Scancode.KP_EQUALSAS400;
-
-SCANCODE_INTERNATIONAL1 :: Scancode.INTERNATIONAL1;
-SCANCODE_INTERNATIONAL2 :: Scancode.INTERNATIONAL2;
-SCANCODE_INTERNATIONAL3 :: Scancode.INTERNATIONAL3;
-SCANCODE_INTERNATIONAL4 :: Scancode.INTERNATIONAL4;
-SCANCODE_INTERNATIONAL5 :: Scancode.INTERNATIONAL5;
-SCANCODE_INTERNATIONAL6 :: Scancode.INTERNATIONAL6;
-SCANCODE_INTERNATIONAL7 :: Scancode.INTERNATIONAL7;
-SCANCODE_INTERNATIONAL8 :: Scancode.INTERNATIONAL8;
-SCANCODE_INTERNATIONAL9 :: Scancode.INTERNATIONAL9;
-SCANCODE_LANG1 :: Scancode.LANG1;
-SCANCODE_LANG2 :: Scancode.LANG2;
-SCANCODE_LANG3 :: Scancode.LANG3;
-SCANCODE_LANG4 :: Scancode.LANG4;
-SCANCODE_LANG5 :: Scancode.LANG5;
-SCANCODE_LANG6 :: Scancode.LANG6;
-SCANCODE_LANG7 :: Scancode.LANG7;
-SCANCODE_LANG8 :: Scancode.LANG8;
-SCANCODE_LANG9 :: Scancode.LANG9;
-
-SCANCODE_ALTERASE   :: Scancode.ALTERASE;
-SCANCODE_SYSREQ     :: Scancode.SYSREQ;
-SCANCODE_CANCEL     :: Scancode.CANCEL;
-SCANCODE_CLEAR      :: Scancode.CLEAR;
-SCANCODE_PRIOR      :: Scancode.PRIOR;
-SCANCODE_RETURN2    :: Scancode.RETURN2;
-SCANCODE_SEPARATOR  :: Scancode.SEPARATOR;
-SCANCODE_OUT        :: Scancode.OUT;
-SCANCODE_OPER       :: Scancode.OPER;
-SCANCODE_CLEARAGAIN :: Scancode.CLEARAGAIN;
-SCANCODE_CRSEL      :: Scancode.CRSEL;
-SCANCODE_EXSEL      :: Scancode.EXSEL;
-
-SCANCODE_KP_00              :: Scancode.KP_00;
-SCANCODE_KP_000             :: Scancode.KP_000;
-SCANCODE_THOUSANDSSEPARATOR :: Scancode.THOUSANDSSEPARATOR;
-SCANCODE_DECIMALSEPARATOR   :: Scancode.DECIMALSEPARATOR;
-SCANCODE_CURRENCYUNIT       :: Scancode.CURRENCYUNIT;
-SCANCODE_CURRENCYSUBUNIT    :: Scancode.CURRENCYSUBUNIT;
-SCANCODE_KP_LEFTPAREN       :: Scancode.KP_LEFTPAREN;
-SCANCODE_KP_RIGHTPAREN      :: Scancode.KP_RIGHTPAREN;
-SCANCODE_KP_LEFTBRACE       :: Scancode.KP_LEFTBRACE;
-SCANCODE_KP_RIGHTBRACE      :: Scancode.KP_RIGHTBRACE;
-SCANCODE_KP_TAB             :: Scancode.KP_TAB;
-SCANCODE_KP_BACKSPACE       :: Scancode.KP_BACKSPACE;
-SCANCODE_KP_A               :: Scancode.KP_A;
-SCANCODE_KP_B               :: Scancode.KP_B;
-SCANCODE_KP_C               :: Scancode.KP_C;
-SCANCODE_KP_D               :: Scancode.KP_D;
-SCANCODE_KP_E               :: Scancode.KP_E;
-SCANCODE_KP_F               :: Scancode.KP_F;
-SCANCODE_KP_XOR             :: Scancode.KP_XOR;
-SCANCODE_KP_POWER           :: Scancode.KP_POWER;
-SCANCODE_KP_PERCENT         :: Scancode.KP_PERCENT;
-SCANCODE_KP_LESS            :: Scancode.KP_LESS;
-SCANCODE_KP_GREATER         :: Scancode.KP_GREATER;
-SCANCODE_KP_AMPERSAND       :: Scancode.KP_AMPERSAND;
-SCANCODE_KP_DBLAMPERSAND    :: Scancode.KP_DBLAMPERSAND;
-SCANCODE_KP_VERTICALBAR     :: Scancode.KP_VERTICALBAR;
-SCANCODE_KP_DBLVERTICALBAR  :: Scancode.KP_DBLVERTICALBAR;
-SCANCODE_KP_COLON           :: Scancode.KP_COLON;
-SCANCODE_KP_HASH            :: Scancode.KP_HASH;
-SCANCODE_KP_SPACE           :: Scancode.KP_SPACE;
-SCANCODE_KP_AT              :: Scancode.KP_AT;
-SCANCODE_KP_EXCLAM          :: Scancode.KP_EXCLAM;
-SCANCODE_KP_MEMSTORE        :: Scancode.KP_MEMSTORE;
-SCANCODE_KP_MEMRECALL       :: Scancode.KP_MEMRECALL;
-SCANCODE_KP_MEMCLEAR        :: Scancode.KP_MEMCLEAR;
-SCANCODE_KP_MEMADD          :: Scancode.KP_MEMADD;
-SCANCODE_KP_MEMSUBTRACT     :: Scancode.KP_MEMSUBTRACT;
-SCANCODE_KP_MEMMULTIPLY     :: Scancode.KP_MEMMULTIPLY;
-SCANCODE_KP_MEMDIVIDE       :: Scancode.KP_MEMDIVIDE;
-SCANCODE_KP_PLUSMINUS       :: Scancode.KP_PLUSMINUS;
-SCANCODE_KP_CLEAR           :: Scancode.KP_CLEAR;
-SCANCODE_KP_CLEARENTRY      :: Scancode.KP_CLEARENTRY;
-SCANCODE_KP_BINARY          :: Scancode.KP_BINARY;
-SCANCODE_KP_OCTAL           :: Scancode.KP_OCTAL;
-SCANCODE_KP_DECIMAL         :: Scancode.KP_DECIMAL;
-SCANCODE_KP_HEXADECIMAL     :: Scancode.KP_HEXADECIMAL;
-
-SCANCODE_LCTRL  :: Scancode.LCTRL;
-SCANCODE_LSHIFT :: Scancode.LSHIFT;
-SCANCODE_LALT   :: Scancode.LALT;
-SCANCODE_LGUI   :: Scancode.LGUI;
-SCANCODE_RCTRL  :: Scancode.RCTRL;
-SCANCODE_RSHIFT :: Scancode.RSHIFT;
-SCANCODE_RALT   :: Scancode.RALT;
-SCANCODE_RGUI   :: Scancode.RGUI;
-
-SCANCODE_MODE :: Scancode.MODE;
-
-SCANCODE_AUDIONEXT    :: Scancode.AUDIONEXT;
-SCANCODE_AUDIOPREV    :: Scancode.AUDIOPREV;
-SCANCODE_AUDIOSTOP    :: Scancode.AUDIOSTOP;
-SCANCODE_AUDIOPLAY    :: Scancode.AUDIOPLAY;
-SCANCODE_AUDIOMUTE    :: Scancode.AUDIOMUTE;
-SCANCODE_MEDIASELECT  :: Scancode.MEDIASELECT;
-SCANCODE_WWW          :: Scancode.WWW;
-SCANCODE_MAIL         :: Scancode.MAIL;
-SCANCODE_CALCULATOR   :: Scancode.CALCULATOR;
-SCANCODE_COMPUTER     :: Scancode.COMPUTER;
-SCANCODE_AC_SEARCH    :: Scancode.AC_SEARCH;
-SCANCODE_AC_HOME      :: Scancode.AC_HOME;
-SCANCODE_AC_BACK      :: Scancode.AC_BACK;
-SCANCODE_AC_FORWARD   :: Scancode.AC_FORWARD;
-SCANCODE_AC_STOP      :: Scancode.AC_STOP;
-SCANCODE_AC_REFRESH   :: Scancode.AC_REFRESH;
-SCANCODE_AC_BOOKMARKS :: Scancode.AC_BOOKMARKS;
-
-
-SCANCODE_BRIGHTNESSDOWN :: Scancode.BRIGHTNESSDOWN;
-SCANCODE_BRIGHTNESSUP   :: Scancode.BRIGHTNESSUP;
-SCANCODE_DISPLAYSWITCH  :: Scancode.DISPLAYSWITCH;
-SCANCODE_KBDILLUMTOGGLE :: Scancode.KBDILLUMTOGGLE;
-SCANCODE_KBDILLUMDOWN   :: Scancode.KBDILLUMDOWN;
-SCANCODE_KBDILLUMUP     :: Scancode.KBDILLUMUP;
-SCANCODE_EJECT          :: Scancode.EJECT;
-SCANCODE_SLEEP          :: Scancode.SLEEP;
-
-SCANCODE_APP1 :: Scancode.APP1;
-SCANCODE_APP2 :: Scancode.APP2;
-
-SCANCODE_AUDIOREWIND      :: Scancode.AUDIOREWIND;
+NUM_SCANCODES :: 512
+
+
+
+
+SCANCODE_UNKNOWN :: Scancode.UNKNOWN
+
+SCANCODE_A :: Scancode.A
+SCANCODE_B :: Scancode.B
+SCANCODE_C :: Scancode.C
+SCANCODE_D :: Scancode.D
+SCANCODE_E :: Scancode.E
+SCANCODE_F :: Scancode.F
+SCANCODE_G :: Scancode.G
+SCANCODE_H :: Scancode.H
+SCANCODE_I :: Scancode.I
+SCANCODE_J :: Scancode.J
+SCANCODE_K :: Scancode.K
+SCANCODE_L :: Scancode.L
+SCANCODE_M :: Scancode.M
+SCANCODE_N :: Scancode.N
+SCANCODE_O :: Scancode.O
+SCANCODE_P :: Scancode.P
+SCANCODE_Q :: Scancode.Q
+SCANCODE_R :: Scancode.R
+SCANCODE_S :: Scancode.S
+SCANCODE_T :: Scancode.T
+SCANCODE_U :: Scancode.U
+SCANCODE_V :: Scancode.V
+SCANCODE_W :: Scancode.W
+SCANCODE_X :: Scancode.X
+SCANCODE_Y :: Scancode.Y
+SCANCODE_Z :: Scancode.Z
+
+SCANCODE_1 :: Scancode.NUM1
+SCANCODE_2 :: Scancode.NUM2
+SCANCODE_3 :: Scancode.NUM3
+SCANCODE_4 :: Scancode.NUM4
+SCANCODE_5 :: Scancode.NUM5
+SCANCODE_6 :: Scancode.NUM6
+SCANCODE_7 :: Scancode.NUM7
+SCANCODE_8 :: Scancode.NUM8
+SCANCODE_9 :: Scancode.NUM9
+SCANCODE_0 :: Scancode.NUM0
+
+SCANCODE_RETURN    :: Scancode.RETURN
+SCANCODE_ESCAPE    :: Scancode.ESCAPE
+SCANCODE_BACKSPACE :: Scancode.BACKSPACE
+SCANCODE_TAB       :: Scancode.TAB
+SCANCODE_SPACE     :: Scancode.SPACE
+
+SCANCODE_MINUS        :: Scancode.MINUS
+SCANCODE_EQUALS       :: Scancode.EQUALS
+SCANCODE_LEFTBRACKET  :: Scancode.LEFTBRACKET
+SCANCODE_RIGHTBRACKET :: Scancode.RIGHTBRACKET
+SCANCODE_BACKSLASH    :: Scancode.BACKSLASH
+SCANCODE_NONUSHASH    :: Scancode.NONUSHASH
+SCANCODE_SEMICOLON    :: Scancode.SEMICOLON
+SCANCODE_APOSTROPHE   :: Scancode.APOSTROPHE
+SCANCODE_GRAVE        :: Scancode.GRAVE
+SCANCODE_COMMA        :: Scancode.COMMA
+SCANCODE_PERIOD       :: Scancode.PERIOD
+SCANCODE_SLASH        :: Scancode.SLASH
+
+SCANCODE_CAPSLOCK :: Scancode.CAPSLOCK
+
+SCANCODE_F1  :: Scancode.F1
+SCANCODE_F2  :: Scancode.F2
+SCANCODE_F3  :: Scancode.F3
+SCANCODE_F4  :: Scancode.F4
+SCANCODE_F5  :: Scancode.F5
+SCANCODE_F6  :: Scancode.F6
+SCANCODE_F7  :: Scancode.F7
+SCANCODE_F8  :: Scancode.F8
+SCANCODE_F9  :: Scancode.F9
+SCANCODE_F10 :: Scancode.F10
+SCANCODE_F11 :: Scancode.F11
+SCANCODE_F12 :: Scancode.F12
+
+SCANCODE_PRINTSCREEN :: Scancode.PRINTSCREEN
+SCANCODE_SCROLLLOCK  :: Scancode.SCROLLLOCK
+SCANCODE_PAUSE       :: Scancode.PAUSE
+SCANCODE_INSERT      :: Scancode.INSERT
+SCANCODE_HOME        :: Scancode.HOME
+SCANCODE_PAGEUP      :: Scancode.PAGEUP
+SCANCODE_DELETE      :: Scancode.DELETE
+SCANCODE_END         :: Scancode.END
+SCANCODE_PAGEDOWN    :: Scancode.PAGEDOWN
+SCANCODE_RIGHT       :: Scancode.RIGHT
+SCANCODE_LEFT        :: Scancode.LEFT
+SCANCODE_DOWN        :: Scancode.DOWN
+SCANCODE_UP          :: Scancode.UP
+
+SCANCODE_NUMLOCKCLEAR :: Scancode.NUMLOCKCLEAR
+SCANCODE_KP_DIVIDE    :: Scancode.KP_DIVIDE
+SCANCODE_KP_MULTIPLY  :: Scancode.KP_MULTIPLY
+SCANCODE_KP_MINUS     :: Scancode.KP_MINUS
+SCANCODE_KP_PLUS      :: Scancode.KP_PLUS
+SCANCODE_KP_ENTER     :: Scancode.KP_ENTER
+SCANCODE_KP_1         :: Scancode.KP_1
+SCANCODE_KP_2         :: Scancode.KP_2
+SCANCODE_KP_3         :: Scancode.KP_3
+SCANCODE_KP_4         :: Scancode.KP_4
+SCANCODE_KP_5         :: Scancode.KP_5
+SCANCODE_KP_6         :: Scancode.KP_6
+SCANCODE_KP_7         :: Scancode.KP_7
+SCANCODE_KP_8         :: Scancode.KP_8
+SCANCODE_KP_9         :: Scancode.KP_9
+SCANCODE_KP_0         :: Scancode.KP_0
+SCANCODE_KP_PERIOD    :: Scancode.KP_PERIOD
+
+SCANCODE_NONUSBACKSLASH :: Scancode.NONUSBACKSLASH
+SCANCODE_APPLICATION    :: Scancode.APPLICATION
+SCANCODE_POWER          :: Scancode.POWER
+SCANCODE_KP_EQUALS      :: Scancode.KP_EQUALS
+SCANCODE_F13            :: Scancode.F13
+SCANCODE_F14            :: Scancode.F14
+SCANCODE_F15            :: Scancode.F15
+SCANCODE_F16            :: Scancode.F16
+SCANCODE_F17            :: Scancode.F17
+SCANCODE_F18            :: Scancode.F18
+SCANCODE_F19            :: Scancode.F19
+SCANCODE_F20            :: Scancode.F20
+SCANCODE_F21            :: Scancode.F21
+SCANCODE_F22            :: Scancode.F22
+SCANCODE_F23            :: Scancode.F23
+SCANCODE_F24            :: Scancode.F24
+SCANCODE_EXECUTE        :: Scancode.EXECUTE
+SCANCODE_HELP           :: Scancode.HELP
+SCANCODE_MENU           :: Scancode.MENU
+SCANCODE_SELECT         :: Scancode.SELECT
+SCANCODE_STOP           :: Scancode.STOP
+SCANCODE_AGAIN          :: Scancode.AGAIN
+SCANCODE_UNDO           :: Scancode.UNDO
+SCANCODE_CUT            :: Scancode.CUT
+SCANCODE_COPY           :: Scancode.COPY
+SCANCODE_PASTE          :: Scancode.PASTE
+SCANCODE_FIND           :: Scancode.FIND
+SCANCODE_MUTE           :: Scancode.MUTE
+SCANCODE_VOLUMEUP       :: Scancode.VOLUMEUP
+SCANCODE_VOLUMEDOWN     :: Scancode.VOLUMEDOWN
+SCANCODE_KP_COMMA       :: Scancode.KP_COMMA
+SCANCODE_KP_EQUALSAS400 :: Scancode.KP_EQUALSAS400
+
+SCANCODE_INTERNATIONAL1 :: Scancode.INTERNATIONAL1
+SCANCODE_INTERNATIONAL2 :: Scancode.INTERNATIONAL2
+SCANCODE_INTERNATIONAL3 :: Scancode.INTERNATIONAL3
+SCANCODE_INTERNATIONAL4 :: Scancode.INTERNATIONAL4
+SCANCODE_INTERNATIONAL5 :: Scancode.INTERNATIONAL5
+SCANCODE_INTERNATIONAL6 :: Scancode.INTERNATIONAL6
+SCANCODE_INTERNATIONAL7 :: Scancode.INTERNATIONAL7
+SCANCODE_INTERNATIONAL8 :: Scancode.INTERNATIONAL8
+SCANCODE_INTERNATIONAL9 :: Scancode.INTERNATIONAL9
+SCANCODE_LANG1 :: Scancode.LANG1
+SCANCODE_LANG2 :: Scancode.LANG2
+SCANCODE_LANG3 :: Scancode.LANG3
+SCANCODE_LANG4 :: Scancode.LANG4
+SCANCODE_LANG5 :: Scancode.LANG5
+SCANCODE_LANG6 :: Scancode.LANG6
+SCANCODE_LANG7 :: Scancode.LANG7
+SCANCODE_LANG8 :: Scancode.LANG8
+SCANCODE_LANG9 :: Scancode.LANG9
+
+SCANCODE_ALTERASE   :: Scancode.ALTERASE
+SCANCODE_SYSREQ     :: Scancode.SYSREQ
+SCANCODE_CANCEL     :: Scancode.CANCEL
+SCANCODE_CLEAR      :: Scancode.CLEAR
+SCANCODE_PRIOR      :: Scancode.PRIOR
+SCANCODE_RETURN2    :: Scancode.RETURN2
+SCANCODE_SEPARATOR  :: Scancode.SEPARATOR
+SCANCODE_OUT        :: Scancode.OUT
+SCANCODE_OPER       :: Scancode.OPER
+SCANCODE_CLEARAGAIN :: Scancode.CLEARAGAIN
+SCANCODE_CRSEL      :: Scancode.CRSEL
+SCANCODE_EXSEL      :: Scancode.EXSEL
+
+SCANCODE_KP_00              :: Scancode.KP_00
+SCANCODE_KP_000             :: Scancode.KP_000
+SCANCODE_THOUSANDSSEPARATOR :: Scancode.THOUSANDSSEPARATOR
+SCANCODE_DECIMALSEPARATOR   :: Scancode.DECIMALSEPARATOR
+SCANCODE_CURRENCYUNIT       :: Scancode.CURRENCYUNIT
+SCANCODE_CURRENCYSUBUNIT    :: Scancode.CURRENCYSUBUNIT
+SCANCODE_KP_LEFTPAREN       :: Scancode.KP_LEFTPAREN
+SCANCODE_KP_RIGHTPAREN      :: Scancode.KP_RIGHTPAREN
+SCANCODE_KP_LEFTBRACE       :: Scancode.KP_LEFTBRACE
+SCANCODE_KP_RIGHTBRACE      :: Scancode.KP_RIGHTBRACE
+SCANCODE_KP_TAB             :: Scancode.KP_TAB
+SCANCODE_KP_BACKSPACE       :: Scancode.KP_BACKSPACE
+SCANCODE_KP_A               :: Scancode.KP_A
+SCANCODE_KP_B               :: Scancode.KP_B
+SCANCODE_KP_C               :: Scancode.KP_C
+SCANCODE_KP_D               :: Scancode.KP_D
+SCANCODE_KP_E               :: Scancode.KP_E
+SCANCODE_KP_F               :: Scancode.KP_F
+SCANCODE_KP_XOR             :: Scancode.KP_XOR
+SCANCODE_KP_POWER           :: Scancode.KP_POWER
+SCANCODE_KP_PERCENT         :: Scancode.KP_PERCENT
+SCANCODE_KP_LESS            :: Scancode.KP_LESS
+SCANCODE_KP_GREATER         :: Scancode.KP_GREATER
+SCANCODE_KP_AMPERSAND       :: Scancode.KP_AMPERSAND
+SCANCODE_KP_DBLAMPERSAND    :: Scancode.KP_DBLAMPERSAND
+SCANCODE_KP_VERTICALBAR     :: Scancode.KP_VERTICALBAR
+SCANCODE_KP_DBLVERTICALBAR  :: Scancode.KP_DBLVERTICALBAR
+SCANCODE_KP_COLON           :: Scancode.KP_COLON
+SCANCODE_KP_HASH            :: Scancode.KP_HASH
+SCANCODE_KP_SPACE           :: Scancode.KP_SPACE
+SCANCODE_KP_AT              :: Scancode.KP_AT
+SCANCODE_KP_EXCLAM          :: Scancode.KP_EXCLAM
+SCANCODE_KP_MEMSTORE        :: Scancode.KP_MEMSTORE
+SCANCODE_KP_MEMRECALL       :: Scancode.KP_MEMRECALL
+SCANCODE_KP_MEMCLEAR        :: Scancode.KP_MEMCLEAR
+SCANCODE_KP_MEMADD          :: Scancode.KP_MEMADD
+SCANCODE_KP_MEMSUBTRACT     :: Scancode.KP_MEMSUBTRACT
+SCANCODE_KP_MEMMULTIPLY     :: Scancode.KP_MEMMULTIPLY
+SCANCODE_KP_MEMDIVIDE       :: Scancode.KP_MEMDIVIDE
+SCANCODE_KP_PLUSMINUS       :: Scancode.KP_PLUSMINUS
+SCANCODE_KP_CLEAR           :: Scancode.KP_CLEAR
+SCANCODE_KP_CLEARENTRY      :: Scancode.KP_CLEARENTRY
+SCANCODE_KP_BINARY          :: Scancode.KP_BINARY
+SCANCODE_KP_OCTAL           :: Scancode.KP_OCTAL
+SCANCODE_KP_DECIMAL         :: Scancode.KP_DECIMAL
+SCANCODE_KP_HEXADECIMAL     :: Scancode.KP_HEXADECIMAL
+
+SCANCODE_LCTRL  :: Scancode.LCTRL
+SCANCODE_LSHIFT :: Scancode.LSHIFT
+SCANCODE_LALT   :: Scancode.LALT
+SCANCODE_LGUI   :: Scancode.LGUI
+SCANCODE_RCTRL  :: Scancode.RCTRL
+SCANCODE_RSHIFT :: Scancode.RSHIFT
+SCANCODE_RALT   :: Scancode.RALT
+SCANCODE_RGUI   :: Scancode.RGUI
+
+SCANCODE_MODE :: Scancode.MODE
+
+SCANCODE_AUDIONEXT    :: Scancode.AUDIONEXT
+SCANCODE_AUDIOPREV    :: Scancode.AUDIOPREV
+SCANCODE_AUDIOSTOP    :: Scancode.AUDIOSTOP
+SCANCODE_AUDIOPLAY    :: Scancode.AUDIOPLAY
+SCANCODE_AUDIOMUTE    :: Scancode.AUDIOMUTE
+SCANCODE_MEDIASELECT  :: Scancode.MEDIASELECT
+SCANCODE_WWW          :: Scancode.WWW
+SCANCODE_MAIL         :: Scancode.MAIL
+SCANCODE_CALCULATOR   :: Scancode.CALCULATOR
+SCANCODE_COMPUTER     :: Scancode.COMPUTER
+SCANCODE_AC_SEARCH    :: Scancode.AC_SEARCH
+SCANCODE_AC_HOME      :: Scancode.AC_HOME
+SCANCODE_AC_BACK      :: Scancode.AC_BACK
+SCANCODE_AC_FORWARD   :: Scancode.AC_FORWARD
+SCANCODE_AC_STOP      :: Scancode.AC_STOP
+SCANCODE_AC_REFRESH   :: Scancode.AC_REFRESH
+SCANCODE_AC_BOOKMARKS :: Scancode.AC_BOOKMARKS
+
+
+SCANCODE_BRIGHTNESSDOWN :: Scancode.BRIGHTNESSDOWN
+SCANCODE_BRIGHTNESSUP   :: Scancode.BRIGHTNESSUP
+SCANCODE_DISPLAYSWITCH  :: Scancode.DISPLAYSWITCH
+SCANCODE_KBDILLUMTOGGLE :: Scancode.KBDILLUMTOGGLE
+SCANCODE_KBDILLUMDOWN   :: Scancode.KBDILLUMDOWN
+SCANCODE_KBDILLUMUP     :: Scancode.KBDILLUMUP
+SCANCODE_EJECT          :: Scancode.EJECT
+SCANCODE_SLEEP          :: Scancode.SLEEP
+
+SCANCODE_APP1 :: Scancode.APP1
+SCANCODE_APP2 :: Scancode.APP2
+
+SCANCODE_AUDIOREWIND      :: Scancode.AUDIOREWIND
 SCANCODE_AUDIOFASTFORWARD :: Scancode.AUDIOFASTFORWARD;

+ 21 - 21
vendor/sdl2/sdl_stdinc.odin

@@ -3,35 +3,35 @@ package sdl2
 import "core:c"
 import "core:intrinsics"
 import "core:runtime"
-_, _ :: intrinsics, runtime;
+_, _ :: intrinsics, runtime
 
 when ODIN_OS == "windows" do foreign import lib "SDL2.lib"
 when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-bool :: distinct b32;
+bool :: distinct b32
 #assert(size_of(bool) == size_of(c.int));
 
 FOURCC :: #force_inline proc "c" (A, B, C, D: u8) -> u32 {
-	return u32(A) << 0 | u32(B) << 8 | u32(C) << 16 | u32(D) << 24;
+	return u32(A) << 0 | u32(B) << 8 | u32(C) << 16 | u32(D) << 24
 }
 
 
 stack_alloc :: proc "c" ($T: typeid, #any_int count: int) -> ^T {
-	return (^T)(intrinsics.alloca(size_of(T)*count));
+	return (^T)(intrinsics.alloca(size_of(T)*count))
 }
 stack_make :: proc "c" ($T: typeid/[]$E, #any_int count: int) -> T {
-	ptr := (^T)(intrinsics.alloca(size_of(T)*count));
-	return transmute(T)runtime.Raw_Slice{ptr, count};
+	ptr := (^T)(intrinsics.alloca(size_of(T)*count))
+	return transmute(T)runtime.Raw_Slice{ptr, count}
 }
 stack_free :: proc "c" (ptr: rawptr) {}
 
 
-malloc_func  :: proc "c" (size: c.size_t) -> rawptr;
-calloc_func  :: proc "c" (nmemb, size: c.size_t) -> rawptr;
-realloc_func :: proc "c" (mem: rawptr, size: c.size_t) -> rawptr;
-free_func    :: proc "c" (mem: rawptr);
+malloc_func  :: proc "c" (size: c.size_t) -> rawptr
+calloc_func  :: proc "c" (nmemb, size: c.size_t) -> rawptr
+realloc_func :: proc "c" (mem: rawptr, size: c.size_t) -> rawptr
+free_func    :: proc "c" (mem: rawptr)
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -81,7 +81,7 @@ foreign lib {
 }
 
 
-M_PI :: 3.14159265358979323846264338327950288;
+M_PI :: 3.14159265358979323846264338327950288
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -130,13 +130,13 @@ foreign lib {
 }
 
 /* The SDL implementation of iconv() returns these error codes */
-ICONV_ERROR  :: ~c.size_t(0); // (size_t)-1
-ICONV_E2BIG  :: ~c.size_t(1); // (size_t)-2
-ICONV_EILSEQ :: ~c.size_t(2); // (size_t)-3
-ICONV_EINVAL :: ~c.size_t(3); // (size_t)-4
+ICONV_ERROR  :: ~c.size_t(0) // (size_t)-1
+ICONV_E2BIG  :: ~c.size_t(1) // (size_t)-2
+ICONV_EILSEQ :: ~c.size_t(2) // (size_t)-3
+ICONV_EINVAL :: ~c.size_t(3) // (size_t)-4
 
 /* SDL_iconv_* are now always real symbols/types, not macros or inlined. */
-iconv_t :: distinct rawptr;
+iconv_t :: distinct rawptr
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -147,17 +147,17 @@ foreign lib {
 }
 
 iconv_utf8_locale :: proc "c" (s: string) -> cstring {
-	return cast(cstring)iconv_string("", "UTF-8", cstring(raw_data(s)), len(s)+1);
+	return cast(cstring)iconv_string("", "UTF-8", cstring(raw_data(s)), len(s)+1)
 }
 
-iconv_utf8_utf16 :: iconv_utf8_ucs2;
+iconv_utf8_utf16 :: iconv_utf8_ucs2
 iconv_utf8_ucs2 :: proc "c" (s: string) -> [^]u16 {
-	return cast([^]u16)iconv_string("UCS-2-INTERNAL", "UTF-8", cstring(raw_data(s)), len(s)+1);
+	return cast([^]u16)iconv_string("UCS-2-INTERNAL", "UTF-8", cstring(raw_data(s)), len(s)+1)
 }
 
 #assert(size_of(rune) == size_of(c.int));
 
-iconv_utf8_utf32 :: iconv_utf8_ucs4;
+iconv_utf8_utf32 :: iconv_utf8_ucs4
 iconv_utf8_ucs4 :: proc "c" (s: string) -> [^]rune {
-	return cast([^]rune)iconv_string("UCS-4-INTERNAL", "UTF-8", cstring(raw_data(s)), len(s)+1);
+	return cast([^]rune)iconv_string("UCS-4-INTERNAL", "UTF-8", cstring(raw_data(s)), len(s)+1)
 }

+ 12 - 12
vendor/sdl2/sdl_surface.odin

@@ -7,17 +7,17 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-SWSURFACE       :: 0;           /**< Just here for compatibility */
-PREALLOC        :: 0x00000001;  /**< Surface uses preallocated memory */
-RLEACCEL        :: 0x00000002;  /**< Surface is RLE encoded */
-DONTFREE        :: 0x00000004;  /**< Surface is referenced internally */
-SIMD_ALIGNED    :: 0x00000008;  /**< Surface uses aligned memory */
+SWSURFACE       :: 0           /**< Just here for compatibility */
+PREALLOC        :: 0x00000001  /**< Surface uses preallocated memory */
+RLEACCEL        :: 0x00000002  /**< Surface is RLE encoded */
+DONTFREE        :: 0x00000004  /**< Surface is referenced internally */
+SIMD_ALIGNED    :: 0x00000008  /**< Surface uses aligned memory */
 
 MUSTLOCK :: #force_inline proc "c" (surface: ^Surface) -> bool {
-	return bool(surface.flags & RLEACCEL != 0);
+	return bool(surface.flags & RLEACCEL != 0)
 }
 
-BlitMap :: struct {};
+BlitMap :: struct {}
 
 Surface :: struct {
 	flags:  u32,                 /**< Read-only */
@@ -45,7 +45,7 @@ Surface :: struct {
 	refcount: c.int,             /**< Read-mostly */
 }
 
-blit :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> c.int;
+blit :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> c.int
 
 
 YUV_CONVERSION_MODE :: enum c.int {
@@ -57,15 +57,15 @@ YUV_CONVERSION_MODE :: enum c.int {
 
 
 LoadBMP :: #force_inline proc "c" (file: cstring) -> ^Surface {
-	return LoadBMP_RW(RWFromFile(file, "rb"), true);
+	return LoadBMP_RW(RWFromFile(file, "rb"), true)
 }
 
 SaveBMP :: #force_inline proc "c" (surface: ^Surface, file: cstring) -> c.int {
-	return SaveBMP_RW(surface, RWFromFile(file, "wb"), true);
+	return SaveBMP_RW(surface, RWFromFile(file, "wb"), true)
 }
 
-BlitSurface :: UpperBlit;
-BlitScaled  :: UpperBlitScaled;
+BlitSurface :: UpperBlit
+BlitScaled  :: UpperBlitScaled
 
 
 @(default_calling_convention="c", link_prefix="SDL_")

+ 7 - 7
vendor/sdl2/sdl_system.odin

@@ -26,10 +26,10 @@ foreign lib {
 
 // Windows & WinRT
 
-WindowsMessageHook :: proc "c" (userdata: rawptr, hWnd: rawptr, message: c.uint, wParam: u64, lParam: i64);
+WindowsMessageHook :: proc "c" (userdata: rawptr, hWnd: rawptr, message: c.uint, wParam: u64, lParam: i64)
 
-IDirect3DDevice9 :: struct {};
-ID3D11Device     :: struct {};
+IDirect3DDevice9 :: struct {}
+ID3D11Device     :: struct {}
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -91,8 +91,8 @@ foreign lib {
 
 
 // iOS
-iOSSetAnimationCallback :: iPhoneSetAnimationCallback;
-iOSSetEventPump         :: iPhoneSetEventPump;
+iOSSetAnimationCallback :: iPhoneSetAnimationCallback
+iOSSetEventPump         :: iPhoneSetEventPump
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
@@ -104,8 +104,8 @@ foreign lib {
 
 // Android
 
-ANDROID_EXTERNAL_STORAGE_READ  :: 0x01;
-ANDROID_EXTERNAL_STORAGE_WRITE :: 0x02;
+ANDROID_EXTERNAL_STORAGE_READ  :: 0x01
+ANDROID_EXTERNAL_STORAGE_WRITE :: 0x02
 
 
 @(default_calling_convention="c", link_prefix="SDL_")

+ 4 - 4
vendor/sdl2/sdl_thread.odin

@@ -7,10 +7,10 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-Thread :: struct {};
+Thread :: struct {}
 
-threadID :: distinct c.ulong;
-TLSID :: distinct c.uint;
+threadID :: distinct c.ulong
+TLSID :: distinct c.uint
 
 ThreadPriority :: enum c.int {
 	LOW,
@@ -19,7 +19,7 @@ ThreadPriority :: enum c.int {
 	TIME_CRITICAL,
 }
 
-ThreadFunction :: proc "c" (data: rawptr) -> c.int;
+ThreadFunction :: proc "c" (data: rawptr) -> c.int
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 3 - 3
vendor/sdl2/sdl_timer.odin

@@ -7,11 +7,11 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-TimerCallback :: proc "c" (interval: u32, param: rawptr) -> u32;
-TimerID :: distinct c.int;
+TimerCallback :: proc "c" (interval: u32, param: rawptr) -> u32
+TimerID :: distinct c.int
 
 TICKS_PASSED :: #force_inline proc "c" (A, B: u32) -> bool {
-	return bool(i32(B) - i32(A) <= 0);
+	return bool(i32(B) - i32(A) <= 0)
 }
 
 @(default_calling_convention="c", link_prefix="SDL_")

+ 4 - 4
vendor/sdl2/sdl_touch.odin

@@ -7,8 +7,8 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-TouchID  :: distinct i64;
-FingerID :: distinct i64;
+TouchID  :: distinct i64
+FingerID :: distinct i64
 
 TouchDeviceType :: enum c.int {
 	INVALID = -1,
@@ -24,8 +24,8 @@ Finger :: struct {
     pressure: f32,
 }
 
-TOUCH_MOUSEID  :: ~u32(0);
-MOUSE_TOUCH_ID :: TouchID(-1);
+TOUCH_MOUSEID  :: ~u32(0)
+MOUSE_TOUCH_ID :: TouchID(-1)
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 35 - 35
vendor/sdl2/sdl_video.odin

@@ -15,7 +15,7 @@ DisplayMode :: struct {
 	driverdata:   rawptr, /**< driver-specific data, initialize to 0 */
 }
 
-Window :: struct {};
+Window :: struct {}
 
 WindowFlag :: enum u32 {
 	FULLSCREEN    = 0,       /**< fullscreen window */
@@ -46,47 +46,47 @@ WindowFlag :: enum u32 {
 
 	INPUT_GRABBED = MOUSE_GRABBED, /**< equivalent to SDL_WINDOW_MOUSE_GRABBED for compatibility */
 }
-WindowFlags :: distinct bit_set[WindowFlag; u32];
+WindowFlags :: distinct bit_set[WindowFlag; u32]
 
 
-WINDOW_FULLSCREEN         :: WindowFlags{.FULLSCREEN};
-WINDOW_OPENGL             :: WindowFlags{.OPENGL};
-WINDOW_SHOWN              :: WindowFlags{.SHOWN};
-WINDOW_HIDDEN             :: WindowFlags{.HIDDEN};
-WINDOW_BORDERLESS         :: WindowFlags{.BORDERLESS};
-WINDOW_RESIZABLE          :: WindowFlags{.RESIZABLE};
-WINDOW_MINIMIZED          :: WindowFlags{.MINIMIZED};
-WINDOW_MAXIMIZED          :: WindowFlags{.MAXIMIZED};
-WINDOW_MOUSE_GRABBED      :: WindowFlags{.MOUSE_GRABBED};
-WINDOW_INPUT_FOCUS        :: WindowFlags{.INPUT_FOCUS};
-WINDOW_MOUSE_FOCUS        :: WindowFlags{.MOUSE_FOCUS};
-WINDOW_FULLSCREEN_DESKTOP :: WindowFlags{.FULLSCREEN, ._INTERNAL_FULLSCREEN_DESKTOP};
-WINDOW_FOREIGN            :: WindowFlags{.FOREIGN};
-WINDOW_ALLOW_HIGHDPI      :: WindowFlags{.ALLOW_HIGHDPI};
-WINDOW_MOUSE_CAPTURE      :: WindowFlags{.MOUSE_CAPTURE};
-WINDOW_ALWAYS_ON_TOP      :: WindowFlags{.ALWAYS_ON_TOP};
-WINDOW_SKIP_TASKBAR       :: WindowFlags{.SKIP_TASKBAR};
-WINDOW_UTILITY            :: WindowFlags{.UTILITY};
-WINDOW_TOOLTIP            :: WindowFlags{.TOOLTIP};
-WINDOW_POPUP_MENU         :: WindowFlags{.POPUP_MENU};
-WINDOW_KEYBOARD_GRABBED   :: WindowFlags{.KEYBOARD_GRABBED};
-WINDOW_VULKAN             :: WindowFlags{.VULKAN};
-WINDOW_METAL              :: WindowFlags{.METAL};
-WINDOW_INPUT_GRABBED      :: WindowFlags{.INPUT_GRABBED};
+WINDOW_FULLSCREEN         :: WindowFlags{.FULLSCREEN}
+WINDOW_OPENGL             :: WindowFlags{.OPENGL}
+WINDOW_SHOWN              :: WindowFlags{.SHOWN}
+WINDOW_HIDDEN             :: WindowFlags{.HIDDEN}
+WINDOW_BORDERLESS         :: WindowFlags{.BORDERLESS}
+WINDOW_RESIZABLE          :: WindowFlags{.RESIZABLE}
+WINDOW_MINIMIZED          :: WindowFlags{.MINIMIZED}
+WINDOW_MAXIMIZED          :: WindowFlags{.MAXIMIZED}
+WINDOW_MOUSE_GRABBED      :: WindowFlags{.MOUSE_GRABBED}
+WINDOW_INPUT_FOCUS        :: WindowFlags{.INPUT_FOCUS}
+WINDOW_MOUSE_FOCUS        :: WindowFlags{.MOUSE_FOCUS}
+WINDOW_FULLSCREEN_DESKTOP :: WindowFlags{.FULLSCREEN, ._INTERNAL_FULLSCREEN_DESKTOP}
+WINDOW_FOREIGN            :: WindowFlags{.FOREIGN}
+WINDOW_ALLOW_HIGHDPI      :: WindowFlags{.ALLOW_HIGHDPI}
+WINDOW_MOUSE_CAPTURE      :: WindowFlags{.MOUSE_CAPTURE}
+WINDOW_ALWAYS_ON_TOP      :: WindowFlags{.ALWAYS_ON_TOP}
+WINDOW_SKIP_TASKBAR       :: WindowFlags{.SKIP_TASKBAR}
+WINDOW_UTILITY            :: WindowFlags{.UTILITY}
+WINDOW_TOOLTIP            :: WindowFlags{.TOOLTIP}
+WINDOW_POPUP_MENU         :: WindowFlags{.POPUP_MENU}
+WINDOW_KEYBOARD_GRABBED   :: WindowFlags{.KEYBOARD_GRABBED}
+WINDOW_VULKAN             :: WindowFlags{.VULKAN}
+WINDOW_METAL              :: WindowFlags{.METAL}
+WINDOW_INPUT_GRABBED      :: WindowFlags{.INPUT_GRABBED}
 
 
-WINDOWPOS_UNDEFINED_MASK :: 0x1FFF0000;
+WINDOWPOS_UNDEFINED_MASK :: 0x1FFF0000
 WINDOWPOS_UNDEFINED_DISPLAY :: #force_inline proc "c" (X: c.int) -> c.int { return WINDOWPOS_UNDEFINED_MASK|X }
-WINDOWPOS_UNDEFINED :: WINDOWPOS_UNDEFINED_MASK|0;
+WINDOWPOS_UNDEFINED :: WINDOWPOS_UNDEFINED_MASK|0
 WINDOWPOS_ISUNDEFINED :: #force_inline proc "c" (X: c.int) -> bool {
-	return u32(X)&0xFFFF0000 == WINDOWPOS_UNDEFINED_MASK;
+	return u32(X)&0xFFFF0000 == WINDOWPOS_UNDEFINED_MASK
 }
 
-WINDOWPOS_CENTERED_MASK :: 0x2FFF0000;
+WINDOWPOS_CENTERED_MASK :: 0x2FFF0000
 WINDOWPOS_CENTERED_DISPLAY :: #force_inline proc "c" (X: c.int) -> c.int { return WINDOWPOS_CENTERED_MASK|X }
-WINDOWPOS_CENTERED :: WINDOWPOS_CENTERED_MASK|0;
+WINDOWPOS_CENTERED :: WINDOWPOS_CENTERED_MASK|0
 WINDOWPOS_ISCENTERED :: #force_inline proc "c" (X: c.int) -> bool {
-	return u32(X)&0xFFFF0000 == WINDOWPOS_CENTERED_MASK;
+	return u32(X)&0xFFFF0000 == WINDOWPOS_CENTERED_MASK
 }
 
 
@@ -136,7 +136,7 @@ FlashOperation :: enum c.int {
 	UNTIL_FOCUSED,            /**< Flash the window until it gets focus */
 }
 
-GLContext :: distinct rawptr;
+GLContext :: distinct rawptr
 
 GLattr :: enum c.int {
 	RED_SIZE,
@@ -205,7 +205,7 @@ HitTestResult :: enum c.int {
 	RESIZE_LEFT,
 }
 
-HitTest :: proc "c" (win: ^Window, area: ^Point, data: rawptr) -> HitTestResult;
+HitTest :: proc "c" (win: ^Window, area: ^Point, data: rawptr) -> HitTestResult
 
 
 @(default_calling_convention="c", link_prefix="SDL_")
@@ -309,5 +309,5 @@ foreign lib {
 
 // Used by vendor:OpenGL
 gl_set_proc_address :: proc(p: rawptr, name: cstring) {
-	(^rawptr)(p)^ = GL_GetProcAddress(name);
+	(^rawptr)(p)^ = GL_GetProcAddress(name)
 }

+ 4 - 4
vendor/sdl2/sdl_vulkan.odin

@@ -7,11 +7,11 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
 
-VkInstance   :: distinct u64;
-VkSurfaceKHR :: distinct u64;
+VkInstance   :: distinct u64
+VkSurfaceKHR :: distinct u64
 
-vulkanInstance :: VkInstance;
-vulkanSurface  :: VkSurfaceKHR;
+vulkanInstance :: VkInstance
+vulkanSurface  :: VkSurfaceKHR
 
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {

+ 23 - 23
vendor/sdl2/ttf/sdl_ttf.odin

@@ -8,18 +8,18 @@ when ODIN_OS == "linux"   do foreign import lib "system:SDL2_ttf"
 when ODIN_OS == "darwin"  do foreign import lib "system:SDL2_ttf"
 when ODIN_OS == "freebsd" do foreign import lib "system:SDL2_ttf"
 
-bool :: SDL.bool;
+bool :: SDL.bool
 
 #assert(size_of(rune) == size_of(u32));
 
-MAJOR_VERSION :: 2;
-MINOR_VERSION :: 0;
-PATCHLEVEL    :: 15;
+MAJOR_VERSION :: 2
+MINOR_VERSION :: 0
+PATCHLEVEL    :: 15
 
-UNICODE_BOM_NATIVE  :: 0xFEFF;
-UNICODE_BOM_SWAPPED :: 0xFFFE;
+UNICODE_BOM_NATIVE  :: 0xFEFF
+UNICODE_BOM_SWAPPED :: 0xFFFE
 
-Font :: struct {};
+Font :: struct {}
 
 StyleFlag :: enum c.int {
 	BOLD          = 0,
@@ -28,13 +28,13 @@ StyleFlag :: enum c.int {
 	STRIKETHROUGH = 3,
 }
 
-Style :: distinct bit_set[StyleFlag; c.int];
+Style :: distinct bit_set[StyleFlag; c.int]
 
-STYLE_NORMAL        :: Style{};
-STYLE_BOLD          :: Style{.BOLD};
-STYLE_ITALIC        :: Style{.ITALIC};
-STYLE_UNDERLINE     :: Style{.UNDERLINE};
-STYLE_STRIKETHROUGH :: Style{.STRIKETHROUGH};
+STYLE_NORMAL        :: Style{}
+STYLE_BOLD          :: Style{.BOLD}
+STYLE_ITALIC        :: Style{.ITALIC}
+STYLE_UNDERLINE     :: Style{.UNDERLINE}
+STYLE_STRIKETHROUGH :: Style{.STRIKETHROUGH}
 
 Hinting :: enum c.int {
 	NORMAL         = 0,
@@ -44,25 +44,25 @@ Hinting :: enum c.int {
 	LIGHT_SUBPIXEL = 4,
 }
 
-HINTING_NORMAL         :: Hinting.NORMAL;
-HINTING_LIGHT          :: Hinting.LIGHT;
-HINTING_MONO           :: Hinting.MONO;
-HINTING_NONE           :: Hinting.NONE;
-HINTING_LIGHT_SUBPIXEL :: Hinting.LIGHT_SUBPIXEL;
+HINTING_NORMAL         :: Hinting.NORMAL
+HINTING_LIGHT          :: Hinting.LIGHT
+HINTING_MONO           :: Hinting.MONO
+HINTING_NONE           :: Hinting.NONE
+HINTING_LIGHT_SUBPIXEL :: Hinting.LIGHT_SUBPIXEL
 
 /* We'll use SDL for reporting errors */
-SetError :: SDL.SetError;
-GetError :: SDL.GetError;
+SetError :: SDL.SetError
+GetError :: SDL.GetError
 
 /* For compatibility with previous versions, here are the old functions */
 RenderText :: #force_inline proc "c" (font: ^Font, text: cstring, fg, bg: SDL.Color) -> ^SDL.Surface {
-	return RenderText_Shaded(font, text, fg, bg);
+	return RenderText_Shaded(font, text, fg, bg)
 }
 RenderUTF8 :: #force_inline proc "c" (font: ^Font, text: cstring, fg, bg: SDL.Color) -> ^SDL.Surface {
-	return RenderUTF8_Shaded(font, text, fg, bg);
+	return RenderUTF8_Shaded(font, text, fg, bg)
 }
 RenderUNICODE :: #force_inline proc "c" (font: ^Font, text: [^]u16, fg, bg: SDL.Color)  -> ^SDL.Surface {
-	return RenderUNICODE_Shaded(font, text, fg, bg);
+	return RenderUNICODE_Shaded(font, text, fg, bg)
 }
 
 @(default_calling_convention="c", link_prefix="TTF_")

+ 744 - 744
vendor/vulkan/core.odin

@@ -4,767 +4,767 @@
 package vulkan
 
 import "core:c"
-API_VERSION_1_0 :: (1<<22) | (0<<12) | (0);
+API_VERSION_1_0 :: (1<<22) | (0<<12) | (0)
 
 MAKE_VERSION :: proc(major, minor, patch: u32) -> u32 {
-    return (major<<22) | (minor<<12) | (patch);
+    return (major<<22) | (minor<<12) | (patch)
 }
 
 // Base types
-Flags         :: distinct u32;
-Flags64       :: distinct u64;
-DeviceSize    :: distinct u64;
-DeviceAddress :: distinct u64;
-SampleMask    :: distinct u32;
+Flags         :: distinct u32
+Flags64       :: distinct u64
+DeviceSize    :: distinct u64
+DeviceAddress :: distinct u64
+SampleMask    :: distinct u32
 
-Handle                :: distinct rawptr;
-NonDispatchableHandle :: distinct u64;
+Handle                :: distinct rawptr
+NonDispatchableHandle :: distinct u64
 
-SetProcAddressType :: #type proc(p: rawptr, name: cstring);
+SetProcAddressType :: #type proc(p: rawptr, name: cstring)
 
 
-cstring_array :: ^cstring; // Helper Type
+cstring_array :: ^cstring // Helper Type
 
-RemoteAddressNV :: distinct rawptr; // Declared inline before MemoryGetRemoteAddressInfoNV
+RemoteAddressNV :: distinct rawptr // Declared inline before MemoryGetRemoteAddressInfoNV
 
 // Base constants
-LOD_CLAMP_NONE                :: 1000.0;
-REMAINING_MIP_LEVELS          :: ~u32(0);
-REMAINING_ARRAY_LAYERS        :: ~u32(0);
-WHOLE_SIZE                    :: ~u64(0);
-ATTACHMENT_UNUSED             :: ~u32(0);
-TRUE                          :: 1;
-FALSE                         :: 0;
-QUEUE_FAMILY_IGNORED          :: ~u32(0);
-SUBPASS_EXTERNAL              :: ~u32(0);
-MAX_PHYSICAL_DEVICE_NAME_SIZE :: 256;
-UUID_SIZE                     :: 16;
-MAX_MEMORY_TYPES              :: 32;
-MAX_MEMORY_HEAPS              :: 16;
-MAX_EXTENSION_NAME_SIZE       :: 256;
-MAX_DESCRIPTION_SIZE          :: 256;
-MAX_DEVICE_GROUP_SIZE_KHX     :: 32;
-MAX_DEVICE_GROUP_SIZE         :: 32;
-LUID_SIZE_KHX                 :: 8;
-LUID_SIZE_KHR                 :: 8;
-LUID_SIZE                     :: 8;
-MAX_DRIVER_NAME_SIZE_KHR      :: 256;
-MAX_DRIVER_INFO_SIZE_KHR      :: 256;
-MAX_QUEUE_FAMILY_EXTERNAL     :: ~u32(0)-1;
-MAX_GLOBAL_PRIORITY_SIZE_EXT  :: 16;
+LOD_CLAMP_NONE                :: 1000.0
+REMAINING_MIP_LEVELS          :: ~u32(0)
+REMAINING_ARRAY_LAYERS        :: ~u32(0)
+WHOLE_SIZE                    :: ~u64(0)
+ATTACHMENT_UNUSED             :: ~u32(0)
+TRUE                          :: 1
+FALSE                         :: 0
+QUEUE_FAMILY_IGNORED          :: ~u32(0)
+SUBPASS_EXTERNAL              :: ~u32(0)
+MAX_PHYSICAL_DEVICE_NAME_SIZE :: 256
+UUID_SIZE                     :: 16
+MAX_MEMORY_TYPES              :: 32
+MAX_MEMORY_HEAPS              :: 16
+MAX_EXTENSION_NAME_SIZE       :: 256
+MAX_DESCRIPTION_SIZE          :: 256
+MAX_DEVICE_GROUP_SIZE_KHX     :: 32
+MAX_DEVICE_GROUP_SIZE         :: 32
+LUID_SIZE_KHX                 :: 8
+LUID_SIZE_KHR                 :: 8
+LUID_SIZE                     :: 8
+MAX_DRIVER_NAME_SIZE_KHR      :: 256
+MAX_DRIVER_INFO_SIZE_KHR      :: 256
+MAX_QUEUE_FAMILY_EXTERNAL     :: ~u32(0)-1
+MAX_GLOBAL_PRIORITY_SIZE_EXT  :: 16
 
 // General Constants
-HEADER_VERSION       :: 189;
-MAX_DRIVER_NAME_SIZE :: 256;
-MAX_DRIVER_INFO_SIZE :: 256;
+HEADER_VERSION       :: 189
+MAX_DRIVER_NAME_SIZE :: 256
+MAX_DRIVER_INFO_SIZE :: 256
 
 // Vendor Constants
-KHR_surface                                             :: 1;
-KHR_SURFACE_SPEC_VERSION                                :: 25;
-KHR_SURFACE_EXTENSION_NAME                              :: "VK_KHR_surface";
-KHR_swapchain                                           :: 1;
-KHR_SWAPCHAIN_SPEC_VERSION                              :: 70;
-KHR_SWAPCHAIN_EXTENSION_NAME                            :: "VK_KHR_swapchain";
-KHR_display                                             :: 1;
-KHR_DISPLAY_SPEC_VERSION                                :: 23;
-KHR_DISPLAY_EXTENSION_NAME                              :: "VK_KHR_display";
-KHR_display_swapchain                                   :: 1;
-KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION                      :: 10;
-KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME                    :: "VK_KHR_display_swapchain";
-KHR_sampler_mirror_clamp_to_edge                        :: 1;
-KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION           :: 3;
-KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME         :: "VK_KHR_sampler_mirror_clamp_to_edge";
-KHR_multiview                                           :: 1;
-KHR_MULTIVIEW_SPEC_VERSION                              :: 1;
-KHR_MULTIVIEW_EXTENSION_NAME                            :: "VK_KHR_multiview";
-KHR_get_physical_device_properties2                     :: 1;
-KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION       :: 2;
-KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     :: "VK_KHR_get_physical_device_properties2";
-KHR_device_group                                        :: 1;
-KHR_DEVICE_GROUP_SPEC_VERSION                           :: 4;
-KHR_DEVICE_GROUP_EXTENSION_NAME                         :: "VK_KHR_device_group";
-KHR_shader_draw_parameters                              :: 1;
-KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION                 :: 1;
-KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME               :: "VK_KHR_shader_draw_parameters";
-KHR_maintenance1                                        :: 1;
-KHR_MAINTENANCE1_SPEC_VERSION                           :: 2;
-KHR_MAINTENANCE1_EXTENSION_NAME                         :: "VK_KHR_maintenance1";
-KHR_device_group_creation                               :: 1;
-KHR_DEVICE_GROUP_CREATION_SPEC_VERSION                  :: 1;
-KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME                :: "VK_KHR_device_group_creation";
-KHR_external_memory_capabilities                        :: 1;
-KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION           :: 1;
-KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME         :: "VK_KHR_external_memory_capabilities";
-KHR_external_memory                                     :: 1;
-KHR_EXTERNAL_MEMORY_SPEC_VERSION                        :: 1;
-KHR_EXTERNAL_MEMORY_EXTENSION_NAME                      :: "VK_KHR_external_memory";
-KHR_external_memory_fd                                  :: 1;
-KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION                     :: 1;
-KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME                   :: "VK_KHR_external_memory_fd";
-KHR_external_semaphore_capabilities                     :: 1;
-KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION        :: 1;
-KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME      :: "VK_KHR_external_semaphore_capabilities";
-KHR_external_semaphore                                  :: 1;
-KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION                     :: 1;
-KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME                   :: "VK_KHR_external_semaphore";
-KHR_external_semaphore_fd                               :: 1;
-KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION                  :: 1;
-KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME                :: "VK_KHR_external_semaphore_fd";
-KHR_push_descriptor                                     :: 1;
-KHR_PUSH_DESCRIPTOR_SPEC_VERSION                        :: 2;
-KHR_PUSH_DESCRIPTOR_EXTENSION_NAME                      :: "VK_KHR_push_descriptor";
-KHR_shader_float16_int8                                 :: 1;
-KHR_SHADER_FLOAT16_INT8_SPEC_VERSION                    :: 1;
-KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME                  :: "VK_KHR_shader_float16_int8";
-KHR_16bit_storage                                       :: 1;
-KHR_16BIT_STORAGE_SPEC_VERSION                          :: 1;
-KHR_16BIT_STORAGE_EXTENSION_NAME                        :: "VK_KHR_16bit_storage";
-KHR_incremental_present                                 :: 1;
-KHR_INCREMENTAL_PRESENT_SPEC_VERSION                    :: 2;
-KHR_INCREMENTAL_PRESENT_EXTENSION_NAME                  :: "VK_KHR_incremental_present";
-KHR_descriptor_update_template                          :: 1;
-KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION             :: 1;
-KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME           :: "VK_KHR_descriptor_update_template";
-KHR_imageless_framebuffer                               :: 1;
-KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION                  :: 1;
-KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME                :: "VK_KHR_imageless_framebuffer";
-KHR_create_renderpass2                                  :: 1;
-KHR_CREATE_RENDERPASS_2_SPEC_VERSION                    :: 1;
-KHR_CREATE_RENDERPASS_2_EXTENSION_NAME                  :: "VK_KHR_create_renderpass2";
-KHR_shared_presentable_image                            :: 1;
-KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION               :: 1;
-KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME             :: "VK_KHR_shared_presentable_image";
-KHR_external_fence_capabilities                         :: 1;
-KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION            :: 1;
-KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME          :: "VK_KHR_external_fence_capabilities";
-KHR_external_fence                                      :: 1;
-KHR_EXTERNAL_FENCE_SPEC_VERSION                         :: 1;
-KHR_EXTERNAL_FENCE_EXTENSION_NAME                       :: "VK_KHR_external_fence";
-KHR_external_fence_fd                                   :: 1;
-KHR_EXTERNAL_FENCE_FD_SPEC_VERSION                      :: 1;
-KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME                    :: "VK_KHR_external_fence_fd";
-KHR_performance_query                                   :: 1;
-KHR_PERFORMANCE_QUERY_SPEC_VERSION                      :: 1;
-KHR_PERFORMANCE_QUERY_EXTENSION_NAME                    :: "VK_KHR_performance_query";
-KHR_maintenance2                                        :: 1;
-KHR_MAINTENANCE2_SPEC_VERSION                           :: 1;
-KHR_MAINTENANCE2_EXTENSION_NAME                         :: "VK_KHR_maintenance2";
-KHR_get_surface_capabilities2                           :: 1;
-KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION             :: 1;
-KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME           :: "VK_KHR_get_surface_capabilities2";
-KHR_variable_pointers                                   :: 1;
-KHR_VARIABLE_POINTERS_SPEC_VERSION                      :: 1;
-KHR_VARIABLE_POINTERS_EXTENSION_NAME                    :: "VK_KHR_variable_pointers";
-KHR_get_display_properties2                             :: 1;
-KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION               :: 1;
-KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME             :: "VK_KHR_get_display_properties2";
-KHR_dedicated_allocation                                :: 1;
-KHR_DEDICATED_ALLOCATION_SPEC_VERSION                   :: 3;
-KHR_DEDICATED_ALLOCATION_EXTENSION_NAME                 :: "VK_KHR_dedicated_allocation";
-KHR_storage_buffer_storage_class                        :: 1;
-KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION           :: 1;
-KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME         :: "VK_KHR_storage_buffer_storage_class";
-KHR_relaxed_block_layout                                :: 1;
-KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION                   :: 1;
-KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME                 :: "VK_KHR_relaxed_block_layout";
-KHR_get_memory_requirements2                            :: 1;
-KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION              :: 1;
-KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME            :: "VK_KHR_get_memory_requirements2";
-KHR_image_format_list                                   :: 1;
-KHR_IMAGE_FORMAT_LIST_SPEC_VERSION                      :: 1;
-KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME                    :: "VK_KHR_image_format_list";
-KHR_sampler_ycbcr_conversion                            :: 1;
-KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION               :: 14;
-KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME             :: "VK_KHR_sampler_ycbcr_conversion";
-KHR_bind_memory2                                        :: 1;
-KHR_BIND_MEMORY_2_SPEC_VERSION                          :: 1;
-KHR_BIND_MEMORY_2_EXTENSION_NAME                        :: "VK_KHR_bind_memory2";
-KHR_maintenance3                                        :: 1;
-KHR_MAINTENANCE3_SPEC_VERSION                           :: 1;
-KHR_MAINTENANCE3_EXTENSION_NAME                         :: "VK_KHR_maintenance3";
-KHR_draw_indirect_count                                 :: 1;
-KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION                    :: 1;
-KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME                  :: "VK_KHR_draw_indirect_count";
-KHR_shader_subgroup_extended_types                      :: 1;
-KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION         :: 1;
-KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME       :: "VK_KHR_shader_subgroup_extended_types";
-KHR_8bit_storage                                        :: 1;
-KHR_8BIT_STORAGE_SPEC_VERSION                           :: 1;
-KHR_8BIT_STORAGE_EXTENSION_NAME                         :: "VK_KHR_8bit_storage";
-KHR_shader_atomic_int64                                 :: 1;
-KHR_SHADER_ATOMIC_INT64_SPEC_VERSION                    :: 1;
-KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME                  :: "VK_KHR_shader_atomic_int64";
-KHR_shader_clock                                        :: 1;
-KHR_SHADER_CLOCK_SPEC_VERSION                           :: 1;
-KHR_SHADER_CLOCK_EXTENSION_NAME                         :: "VK_KHR_shader_clock";
-KHR_driver_properties                                   :: 1;
-KHR_DRIVER_PROPERTIES_SPEC_VERSION                      :: 1;
-KHR_DRIVER_PROPERTIES_EXTENSION_NAME                    :: "VK_KHR_driver_properties";
-KHR_shader_float_controls                               :: 1;
-KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION                  :: 4;
-KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME                :: "VK_KHR_shader_float_controls";
-KHR_depth_stencil_resolve                               :: 1;
-KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION                  :: 1;
-KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME                :: "VK_KHR_depth_stencil_resolve";
-KHR_swapchain_mutable_format                            :: 1;
-KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION               :: 1;
-KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME             :: "VK_KHR_swapchain_mutable_format";
-KHR_timeline_semaphore                                  :: 1;
-KHR_TIMELINE_SEMAPHORE_SPEC_VERSION                     :: 2;
-KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME                   :: "VK_KHR_timeline_semaphore";
-KHR_vulkan_memory_model                                 :: 1;
-KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION                    :: 3;
-KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME                  :: "VK_KHR_vulkan_memory_model";
-KHR_shader_terminate_invocation                         :: 1;
-KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION            :: 1;
-KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME          :: "VK_KHR_shader_terminate_invocation";
-KHR_fragment_shading_rate                               :: 1;
-KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION                  :: 1;
-KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME                :: "VK_KHR_fragment_shading_rate";
-KHR_spirv_1_4                                           :: 1;
-KHR_SPIRV_1_4_SPEC_VERSION                              :: 1;
-KHR_SPIRV_1_4_EXTENSION_NAME                            :: "VK_KHR_spirv_1_4";
-KHR_surface_protected_capabilities                      :: 1;
-KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION         :: 1;
-KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME       :: "VK_KHR_surface_protected_capabilities";
-KHR_separate_depth_stencil_layouts                      :: 1;
-KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION         :: 1;
-KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME       :: "VK_KHR_separate_depth_stencil_layouts";
-KHR_present_wait                                        :: 1;
-KHR_PRESENT_WAIT_SPEC_VERSION                           :: 1;
-KHR_PRESENT_WAIT_EXTENSION_NAME                         :: "VK_KHR_present_wait";
-KHR_uniform_buffer_standard_layout                      :: 1;
-KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION         :: 1;
-KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME       :: "VK_KHR_uniform_buffer_standard_layout";
-KHR_buffer_device_address                               :: 1;
-KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION                  :: 1;
-KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME                :: "VK_KHR_buffer_device_address";
-KHR_deferred_host_operations                            :: 1;
-KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION               :: 4;
-KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME             :: "VK_KHR_deferred_host_operations";
-KHR_pipeline_executable_properties                      :: 1;
-KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION         :: 1;
-KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME       :: "VK_KHR_pipeline_executable_properties";
-KHR_pipeline_library                                    :: 1;
-KHR_PIPELINE_LIBRARY_SPEC_VERSION                       :: 1;
-KHR_PIPELINE_LIBRARY_EXTENSION_NAME                     :: "VK_KHR_pipeline_library";
-KHR_shader_non_semantic_info                            :: 1;
-KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION               :: 1;
-KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME             :: "VK_KHR_shader_non_semantic_info";
-KHR_present_id                                          :: 1;
-KHR_PRESENT_ID_SPEC_VERSION                             :: 1;
-KHR_PRESENT_ID_EXTENSION_NAME                           :: "VK_KHR_present_id";
-KHR_synchronization2                                    :: 1;
-KHR_SYNCHRONIZATION_2_SPEC_VERSION                      :: 1;
-KHR_SYNCHRONIZATION_2_EXTENSION_NAME                    :: "VK_KHR_synchronization2";
-KHR_shader_subgroup_uniform_control_flow                :: 1;
-KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION   :: 1;
-KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME :: "VK_KHR_shader_subgroup_uniform_control_flow";
-KHR_zero_initialize_workgroup_memory                    :: 1;
-KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION       :: 1;
-KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME     :: "VK_KHR_zero_initialize_workgroup_memory";
-KHR_workgroup_memory_explicit_layout                    :: 1;
-KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION       :: 1;
-KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME     :: "VK_KHR_workgroup_memory_explicit_layout";
-KHR_copy_commands2                                      :: 1;
-KHR_COPY_COMMANDS_2_SPEC_VERSION                        :: 1;
-KHR_COPY_COMMANDS_2_EXTENSION_NAME                      :: "VK_KHR_copy_commands2";
-EXT_debug_report                                        :: 1;
-EXT_DEBUG_REPORT_SPEC_VERSION                           :: 10;
-EXT_DEBUG_REPORT_EXTENSION_NAME                         :: "VK_EXT_debug_report";
-NV_glsl_shader                                          :: 1;
-NV_GLSL_SHADER_SPEC_VERSION                             :: 1;
-NV_GLSL_SHADER_EXTENSION_NAME                           :: "VK_NV_glsl_shader";
-EXT_depth_range_unrestricted                            :: 1;
-EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION               :: 1;
-EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME             :: "VK_EXT_depth_range_unrestricted";
-AMD_rasterization_order                                 :: 1;
-AMD_RASTERIZATION_ORDER_SPEC_VERSION                    :: 1;
-AMD_RASTERIZATION_ORDER_EXTENSION_NAME                  :: "VK_AMD_rasterization_order";
-AMD_shader_trinary_minmax                               :: 1;
-AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION                  :: 1;
-AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME                :: "VK_AMD_shader_trinary_minmax";
-AMD_shader_explicit_vertex_parameter                    :: 1;
-AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION       :: 1;
-AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME     :: "VK_AMD_shader_explicit_vertex_parameter";
-EXT_debug_marker                                        :: 1;
-EXT_DEBUG_MARKER_SPEC_VERSION                           :: 4;
-EXT_DEBUG_MARKER_EXTENSION_NAME                         :: "VK_EXT_debug_marker";
-AMD_gcn_shader                                          :: 1;
-AMD_GCN_SHADER_SPEC_VERSION                             :: 1;
-AMD_GCN_SHADER_EXTENSION_NAME                           :: "VK_AMD_gcn_shader";
-NV_dedicated_allocation                                 :: 1;
-NV_DEDICATED_ALLOCATION_SPEC_VERSION                    :: 1;
-NV_DEDICATED_ALLOCATION_EXTENSION_NAME                  :: "VK_NV_dedicated_allocation";
-EXT_transform_feedback                                  :: 1;
-EXT_TRANSFORM_FEEDBACK_SPEC_VERSION                     :: 1;
-EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME                   :: "VK_EXT_transform_feedback";
-NVX_binary_import                                       :: 1;
-NVX_BINARY_IMPORT_SPEC_VERSION                          :: 1;
-NVX_BINARY_IMPORT_EXTENSION_NAME                        :: "VK_NVX_binary_import";
-NVX_image_view_handle                                   :: 1;
-NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION                      :: 2;
-NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME                    :: "VK_NVX_image_view_handle";
-AMD_draw_indirect_count                                 :: 1;
-AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION                    :: 2;
-AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME                  :: "VK_AMD_draw_indirect_count";
-AMD_negative_viewport_height                            :: 1;
-AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION               :: 1;
-AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME             :: "VK_AMD_negative_viewport_height";
-AMD_gpu_shader_half_float                               :: 1;
-AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION                  :: 2;
-AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME                :: "VK_AMD_gpu_shader_half_float";
-AMD_shader_ballot                                       :: 1;
-AMD_SHADER_BALLOT_SPEC_VERSION                          :: 1;
-AMD_SHADER_BALLOT_EXTENSION_NAME                        :: "VK_AMD_shader_ballot";
-AMD_texture_gather_bias_lod                             :: 1;
-AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION                :: 1;
-AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME              :: "VK_AMD_texture_gather_bias_lod";
-AMD_shader_info                                         :: 1;
-AMD_SHADER_INFO_SPEC_VERSION                            :: 1;
-AMD_SHADER_INFO_EXTENSION_NAME                          :: "VK_AMD_shader_info";
-AMD_shader_image_load_store_lod                         :: 1;
-AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION            :: 1;
-AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME          :: "VK_AMD_shader_image_load_store_lod";
-NV_corner_sampled_image                                 :: 1;
-NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION                    :: 2;
-NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME                  :: "VK_NV_corner_sampled_image";
-NV_external_memory_capabilities                         :: 1;
-NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION            :: 1;
-NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME          :: "VK_NV_external_memory_capabilities";
-NV_external_memory                                      :: 1;
-NV_EXTERNAL_MEMORY_SPEC_VERSION                         :: 1;
-NV_EXTERNAL_MEMORY_EXTENSION_NAME                       :: "VK_NV_external_memory";
-EXT_validation_flags                                    :: 1;
-EXT_VALIDATION_FLAGS_SPEC_VERSION                       :: 2;
-EXT_VALIDATION_FLAGS_EXTENSION_NAME                     :: "VK_EXT_validation_flags";
-EXT_shader_subgroup_ballot                              :: 1;
-EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION                 :: 1;
-EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME               :: "VK_EXT_shader_subgroup_ballot";
-EXT_shader_subgroup_vote                                :: 1;
-EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION                   :: 1;
-EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME                 :: "VK_EXT_shader_subgroup_vote";
-EXT_texture_compression_astc_hdr                        :: 1;
-EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION           :: 1;
-EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME         :: "VK_EXT_texture_compression_astc_hdr";
-EXT_astc_decode_mode                                    :: 1;
-EXT_ASTC_DECODE_MODE_SPEC_VERSION                       :: 1;
-EXT_ASTC_DECODE_MODE_EXTENSION_NAME                     :: "VK_EXT_astc_decode_mode";
-EXT_conditional_rendering                               :: 1;
-EXT_CONDITIONAL_RENDERING_SPEC_VERSION                  :: 2;
-EXT_CONDITIONAL_RENDERING_EXTENSION_NAME                :: "VK_EXT_conditional_rendering";
-NV_clip_space_w_scaling                                 :: 1;
-NV_CLIP_SPACE_W_SCALING_SPEC_VERSION                    :: 1;
-NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME                  :: "VK_NV_clip_space_w_scaling";
-EXT_direct_mode_display                                 :: 1;
-EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION                    :: 1;
-EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME                  :: "VK_EXT_direct_mode_display";
-EXT_display_surface_counter                             :: 1;
-EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION                :: 1;
-EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME              :: "VK_EXT_display_surface_counter";
-EXT_display_control                                     :: 1;
-EXT_DISPLAY_CONTROL_SPEC_VERSION                        :: 1;
-EXT_DISPLAY_CONTROL_EXTENSION_NAME                      :: "VK_EXT_display_control";
-GOOGLE_display_timing                                   :: 1;
-GOOGLE_DISPLAY_TIMING_SPEC_VERSION                      :: 1;
-GOOGLE_DISPLAY_TIMING_EXTENSION_NAME                    :: "VK_GOOGLE_display_timing";
-NV_sample_mask_override_coverage                        :: 1;
-NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION           :: 1;
-NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME         :: "VK_NV_sample_mask_override_coverage";
-NV_geometry_shader_passthrough                          :: 1;
-NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION             :: 1;
-NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME           :: "VK_NV_geometry_shader_passthrough";
-NV_viewport_array2                                      :: 1;
-NV_VIEWPORT_ARRAY2_SPEC_VERSION                         :: 1;
-NV_VIEWPORT_ARRAY2_EXTENSION_NAME                       :: "VK_NV_viewport_array2";
-NVX_multiview_per_view_attributes                       :: 1;
-NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION          :: 1;
-NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME        :: "VK_NVX_multiview_per_view_attributes";
-NV_viewport_swizzle                                     :: 1;
-NV_VIEWPORT_SWIZZLE_SPEC_VERSION                        :: 1;
-NV_VIEWPORT_SWIZZLE_EXTENSION_NAME                      :: "VK_NV_viewport_swizzle";
-EXT_discard_rectangles                                  :: 1;
-EXT_DISCARD_RECTANGLES_SPEC_VERSION                     :: 1;
-EXT_DISCARD_RECTANGLES_EXTENSION_NAME                   :: "VK_EXT_discard_rectangles";
-EXT_conservative_rasterization                          :: 1;
-EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION             :: 1;
-EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME           :: "VK_EXT_conservative_rasterization";
-EXT_depth_clip_enable                                   :: 1;
-EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION                      :: 1;
-EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME                    :: "VK_EXT_depth_clip_enable";
-EXT_swapchain_colorspace                                :: 1;
-EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION                  :: 4;
-EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME                :: "VK_EXT_swapchain_colorspace";
-EXT_hdr_metadata                                        :: 1;
-EXT_HDR_METADATA_SPEC_VERSION                           :: 2;
-EXT_HDR_METADATA_EXTENSION_NAME                         :: "VK_EXT_hdr_metadata";
-EXT_external_memory_dma_buf                             :: 1;
-EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION                :: 1;
-EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME              :: "VK_EXT_external_memory_dma_buf";
-EXT_queue_family_foreign                                :: 1;
-EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION                   :: 1;
-EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME                 :: "VK_EXT_queue_family_foreign";
-EXT_debug_utils                                         :: 1;
-EXT_DEBUG_UTILS_SPEC_VERSION                            :: 2;
-EXT_DEBUG_UTILS_EXTENSION_NAME                          :: "VK_EXT_debug_utils";
-EXT_sampler_filter_minmax                               :: 1;
-EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION                  :: 2;
-EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME                :: "VK_EXT_sampler_filter_minmax";
-AMD_gpu_shader_int16                                    :: 1;
-AMD_GPU_SHADER_INT16_SPEC_VERSION                       :: 2;
-AMD_GPU_SHADER_INT16_EXTENSION_NAME                     :: "VK_AMD_gpu_shader_int16";
-AMD_mixed_attachment_samples                            :: 1;
-AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION               :: 1;
-AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME             :: "VK_AMD_mixed_attachment_samples";
-AMD_shader_fragment_mask                                :: 1;
-AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION                   :: 1;
-AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME                 :: "VK_AMD_shader_fragment_mask";
-EXT_inline_uniform_block                                :: 1;
-EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION                   :: 1;
-EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME                 :: "VK_EXT_inline_uniform_block";
-EXT_shader_stencil_export                               :: 1;
-EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION                  :: 1;
-EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME                :: "VK_EXT_shader_stencil_export";
-EXT_sample_locations                                    :: 1;
-EXT_SAMPLE_LOCATIONS_SPEC_VERSION                       :: 1;
-EXT_SAMPLE_LOCATIONS_EXTENSION_NAME                     :: "VK_EXT_sample_locations";
-EXT_blend_operation_advanced                            :: 1;
-EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION               :: 2;
-EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME             :: "VK_EXT_blend_operation_advanced";
-NV_fragment_coverage_to_color                           :: 1;
-NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION              :: 1;
-NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME            :: "VK_NV_fragment_coverage_to_color";
-NV_framebuffer_mixed_samples                            :: 1;
-NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION               :: 1;
-NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME             :: "VK_NV_framebuffer_mixed_samples";
-NV_fill_rectangle                                       :: 1;
-NV_FILL_RECTANGLE_SPEC_VERSION                          :: 1;
-NV_FILL_RECTANGLE_EXTENSION_NAME                        :: "VK_NV_fill_rectangle";
-NV_shader_sm_builtins                                   :: 1;
-NV_SHADER_SM_BUILTINS_SPEC_VERSION                      :: 1;
-NV_SHADER_SM_BUILTINS_EXTENSION_NAME                    :: "VK_NV_shader_sm_builtins";
-EXT_post_depth_coverage                                 :: 1;
-EXT_POST_DEPTH_COVERAGE_SPEC_VERSION                    :: 1;
-EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME                  :: "VK_EXT_post_depth_coverage";
-EXT_image_drm_format_modifier                           :: 1;
-EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION              :: 1;
-EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME            :: "VK_EXT_image_drm_format_modifier";
-EXT_validation_cache                                    :: 1;
-EXT_VALIDATION_CACHE_SPEC_VERSION                       :: 1;
-EXT_VALIDATION_CACHE_EXTENSION_NAME                     :: "VK_EXT_validation_cache";
-EXT_descriptor_indexing                                 :: 1;
-EXT_DESCRIPTOR_INDEXING_SPEC_VERSION                    :: 2;
-EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                  :: "VK_EXT_descriptor_indexing";
-EXT_shader_viewport_index_layer                         :: 1;
-EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION            :: 1;
-EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME          :: "VK_EXT_shader_viewport_index_layer";
-NV_shading_rate_image                                   :: 1;
-NV_SHADING_RATE_IMAGE_SPEC_VERSION                      :: 3;
-NV_SHADING_RATE_IMAGE_EXTENSION_NAME                    :: "VK_NV_shading_rate_image";
-NV_ray_tracing                                          :: 1;
-NV_RAY_TRACING_SPEC_VERSION                             :: 3;
-NV_RAY_TRACING_EXTENSION_NAME                           :: "VK_NV_ray_tracing";
-NV_representative_fragment_test                         :: 1;
-NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION            :: 2;
-NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME          :: "VK_NV_representative_fragment_test";
-EXT_filter_cubic                                        :: 1;
-EXT_FILTER_CUBIC_SPEC_VERSION                           :: 3;
-EXT_FILTER_CUBIC_EXTENSION_NAME                         :: "VK_EXT_filter_cubic";
-EXT_global_priority                                     :: 1;
-EXT_GLOBAL_PRIORITY_SPEC_VERSION                        :: 2;
-EXT_GLOBAL_PRIORITY_EXTENSION_NAME                      :: "VK_EXT_global_priority";
-EXT_external_memory_host                                :: 1;
-EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION                   :: 1;
-EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME                 :: "VK_EXT_external_memory_host";
-AMD_buffer_marker                                       :: 1;
-AMD_BUFFER_MARKER_SPEC_VERSION                          :: 1;
-AMD_BUFFER_MARKER_EXTENSION_NAME                        :: "VK_AMD_buffer_marker";
-AMD_pipeline_compiler_control                           :: 1;
-AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION              :: 1;
-AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME            :: "VK_AMD_pipeline_compiler_control";
-EXT_calibrated_timestamps                               :: 1;
-EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION                  :: 2;
-EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME                :: "VK_EXT_calibrated_timestamps";
-AMD_shader_core_properties                              :: 1;
-AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION                 :: 2;
-AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME               :: "VK_AMD_shader_core_properties";
-AMD_memory_overallocation_behavior                      :: 1;
-AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION         :: 1;
-AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME       :: "VK_AMD_memory_overallocation_behavior";
-EXT_vertex_attribute_divisor                            :: 1;
-EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION               :: 3;
-EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME             :: "VK_EXT_vertex_attribute_divisor";
-EXT_pipeline_creation_feedback                          :: 1;
-EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION             :: 1;
-EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME           :: "VK_EXT_pipeline_creation_feedback";
-NV_shader_subgroup_partitioned                          :: 1;
-NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION             :: 1;
-NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME           :: "VK_NV_shader_subgroup_partitioned";
-NV_compute_shader_derivatives                           :: 1;
-NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION              :: 1;
-NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME            :: "VK_NV_compute_shader_derivatives";
-NV_mesh_shader                                          :: 1;
-NV_MESH_SHADER_SPEC_VERSION                             :: 1;
-NV_MESH_SHADER_EXTENSION_NAME                           :: "VK_NV_mesh_shader";
-NV_fragment_shader_barycentric                          :: 1;
-NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION             :: 1;
-NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME           :: "VK_NV_fragment_shader_barycentric";
-NV_shader_image_footprint                               :: 1;
-NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION                  :: 2;
-NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME                :: "VK_NV_shader_image_footprint";
-NV_scissor_exclusive                                    :: 1;
-NV_SCISSOR_EXCLUSIVE_SPEC_VERSION                       :: 1;
-NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME                     :: "VK_NV_scissor_exclusive";
-NV_device_diagnostic_checkpoints                        :: 1;
-NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION           :: 2;
-NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME         :: "VK_NV_device_diagnostic_checkpoints";
-EXT_pci_bus_info                                        :: 1;
-EXT_PCI_BUS_INFO_SPEC_VERSION                           :: 2;
-EXT_PCI_BUS_INFO_EXTENSION_NAME                         :: "VK_EXT_pci_bus_info";
-AMD_display_native_hdr                                  :: 1;
-AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION                     :: 1;
-AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME                   :: "VK_AMD_display_native_hdr";
-EXT_fragment_density_map                                :: 1;
-EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION                   :: 1;
-EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME                 :: "VK_EXT_fragment_density_map";
-EXT_scalar_block_layout                                 :: 1;
-EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION                    :: 1;
-EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME                  :: "VK_EXT_scalar_block_layout";
-GOOGLE_hlsl_functionality1                              :: 1;
-GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION                 :: 1;
-GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME               :: "VK_GOOGLE_hlsl_functionality1";
-GOOGLE_decorate_string                                  :: 1;
-GOOGLE_DECORATE_STRING_SPEC_VERSION                     :: 1;
-GOOGLE_DECORATE_STRING_EXTENSION_NAME                   :: "VK_GOOGLE_decorate_string";
-EXT_subgroup_size_control                               :: 1;
-EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION                  :: 2;
-EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME                :: "VK_EXT_subgroup_size_control";
-AMD_shader_core_properties2                             :: 1;
-AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION               :: 1;
-AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME             :: "VK_AMD_shader_core_properties2";
-AMD_device_coherent_memory                              :: 1;
-AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION                 :: 1;
-AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME               :: "VK_AMD_device_coherent_memory";
-EXT_shader_image_atomic_int64                           :: 1;
-EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION              :: 1;
-EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME            :: "VK_EXT_shader_image_atomic_int64";
-EXT_memory_budget                                       :: 1;
-EXT_MEMORY_BUDGET_SPEC_VERSION                          :: 1;
-EXT_MEMORY_BUDGET_EXTENSION_NAME                        :: "VK_EXT_memory_budget";
-EXT_memory_priority                                     :: 1;
-EXT_MEMORY_PRIORITY_SPEC_VERSION                        :: 1;
-EXT_MEMORY_PRIORITY_EXTENSION_NAME                      :: "VK_EXT_memory_priority";
-NV_dedicated_allocation_image_aliasing                  :: 1;
-NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION     :: 1;
-NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME   :: "VK_NV_dedicated_allocation_image_aliasing";
-EXT_buffer_device_address                               :: 1;
-EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION                  :: 2;
-EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME                :: "VK_EXT_buffer_device_address";
-EXT_tooling_info                                        :: 1;
-EXT_TOOLING_INFO_SPEC_VERSION                           :: 1;
-EXT_TOOLING_INFO_EXTENSION_NAME                         :: "VK_EXT_tooling_info";
-EXT_separate_stencil_usage                              :: 1;
-EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION                 :: 1;
-EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME               :: "VK_EXT_separate_stencil_usage";
-EXT_validation_features                                 :: 1;
-EXT_VALIDATION_FEATURES_SPEC_VERSION                    :: 5;
-EXT_VALIDATION_FEATURES_EXTENSION_NAME                  :: "VK_EXT_validation_features";
-NV_cooperative_matrix                                   :: 1;
-NV_COOPERATIVE_MATRIX_SPEC_VERSION                      :: 1;
-NV_COOPERATIVE_MATRIX_EXTENSION_NAME                    :: "VK_NV_cooperative_matrix";
-NV_coverage_reduction_mode                              :: 1;
-NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION                 :: 1;
-NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME               :: "VK_NV_coverage_reduction_mode";
-EXT_fragment_shader_interlock                           :: 1;
-EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION              :: 1;
-EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME            :: "VK_EXT_fragment_shader_interlock";
-EXT_ycbcr_image_arrays                                  :: 1;
-EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION                     :: 1;
-EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME                   :: "VK_EXT_ycbcr_image_arrays";
-EXT_provoking_vertex                                    :: 1;
-EXT_PROVOKING_VERTEX_SPEC_VERSION                       :: 1;
-EXT_PROVOKING_VERTEX_EXTENSION_NAME                     :: "VK_EXT_provoking_vertex";
-EXT_headless_surface                                    :: 1;
-EXT_HEADLESS_SURFACE_SPEC_VERSION                       :: 1;
-EXT_HEADLESS_SURFACE_EXTENSION_NAME                     :: "VK_EXT_headless_surface";
-EXT_line_rasterization                                  :: 1;
-EXT_LINE_RASTERIZATION_SPEC_VERSION                     :: 1;
-EXT_LINE_RASTERIZATION_EXTENSION_NAME                   :: "VK_EXT_line_rasterization";
-EXT_shader_atomic_float                                 :: 1;
-EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION                    :: 1;
-EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME                  :: "VK_EXT_shader_atomic_float";
-EXT_host_query_reset                                    :: 1;
-EXT_HOST_QUERY_RESET_SPEC_VERSION                       :: 1;
-EXT_HOST_QUERY_RESET_EXTENSION_NAME                     :: "VK_EXT_host_query_reset";
-EXT_index_type_uint8                                    :: 1;
-EXT_INDEX_TYPE_UINT8_SPEC_VERSION                       :: 1;
-EXT_INDEX_TYPE_UINT8_EXTENSION_NAME                     :: "VK_EXT_index_type_uint8";
-EXT_extended_dynamic_state                              :: 1;
-EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION                 :: 1;
-EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME               :: "VK_EXT_extended_dynamic_state";
-EXT_shader_atomic_float2                                :: 1;
-EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION                  :: 1;
-EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME                :: "VK_EXT_shader_atomic_float2";
-EXT_shader_demote_to_helper_invocation                  :: 1;
-EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION     :: 1;
-EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME   :: "VK_EXT_shader_demote_to_helper_invocation";
-NV_device_generated_commands                            :: 1;
-NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION               :: 3;
-NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME             :: "VK_NV_device_generated_commands";
-NV_inherited_viewport_scissor                           :: 1;
-NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION              :: 1;
-NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME            :: "VK_NV_inherited_viewport_scissor";
-EXT_texel_buffer_alignment                              :: 1;
-EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION                 :: 1;
-EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME               :: "VK_EXT_texel_buffer_alignment";
-EXT_device_memory_report                                :: 1;
-EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION                   :: 2;
-EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME                 :: "VK_EXT_device_memory_report";
-EXT_acquire_drm_display                                 :: 1;
-EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION                    :: 1;
-EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME                  :: "VK_EXT_acquire_drm_display";
-EXT_robustness2                                         :: 1;
-EXT_ROBUSTNESS_2_SPEC_VERSION                           :: 1;
-EXT_ROBUSTNESS_2_EXTENSION_NAME                         :: "VK_EXT_robustness2";
-EXT_custom_border_color                                 :: 1;
-EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION                    :: 12;
-EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME                  :: "VK_EXT_custom_border_color";
-GOOGLE_user_type                                        :: 1;
-GOOGLE_USER_TYPE_SPEC_VERSION                           :: 1;
-GOOGLE_USER_TYPE_EXTENSION_NAME                         :: "VK_GOOGLE_user_type";
-EXT_private_data                                        :: 1;
-EXT_PRIVATE_DATA_SPEC_VERSION                           :: 1;
-EXT_PRIVATE_DATA_EXTENSION_NAME                         :: "VK_EXT_private_data";
-EXT_pipeline_creation_cache_control                     :: 1;
-EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION        :: 3;
-EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME      :: "VK_EXT_pipeline_creation_cache_control";
-NV_device_diagnostics_config                            :: 1;
-NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION               :: 1;
-NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME             :: "VK_NV_device_diagnostics_config";
-NV_fragment_shading_rate_enums                          :: 1;
-NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION             :: 1;
-NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME           :: "VK_NV_fragment_shading_rate_enums";
-NV_ray_tracing_motion_blur                              :: 1;
-NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION                 :: 1;
-NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME               :: "VK_NV_ray_tracing_motion_blur";
-EXT_ycbcr_2plane_444_formats                            :: 1;
-EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION               :: 1;
-EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME             :: "VK_EXT_ycbcr_2plane_444_formats";
-EXT_fragment_density_map2                               :: 1;
-EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION                 :: 1;
-EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME               :: "VK_EXT_fragment_density_map2";
-EXT_image_robustness                                    :: 1;
-EXT_IMAGE_ROBUSTNESS_SPEC_VERSION                       :: 1;
-EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME                     :: "VK_EXT_image_robustness";
-EXT_4444_formats                                        :: 1;
-EXT_4444_FORMATS_SPEC_VERSION                           :: 1;
-EXT_4444_FORMATS_EXTENSION_NAME                         :: "VK_EXT_4444_formats";
-NV_acquire_winrt_display                                :: 1;
-NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION                   :: 1;
-NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME                 :: "VK_NV_acquire_winrt_display";
-EXT_vertex_input_dynamic_state                          :: 1;
-EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION             :: 2;
-EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME           :: "VK_EXT_vertex_input_dynamic_state";
-EXT_physical_device_drm                                 :: 1;
-EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION                    :: 1;
-EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME                  :: "VK_EXT_physical_device_drm";
-NV_external_memory_rdma                                 :: 1;
-NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION                    :: 1;
-NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME                  :: "VK_NV_external_memory_rdma";
-EXT_extended_dynamic_state2                             :: 1;
-EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION               :: 1;
-EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME             :: "VK_EXT_extended_dynamic_state2";
-EXT_color_write_enable                                  :: 1;
-EXT_COLOR_WRITE_ENABLE_SPEC_VERSION                     :: 1;
-EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME                   :: "VK_EXT_color_write_enable";
-EXT_global_priority_query                               :: 1;
-EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION                  :: 1;
-EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME                :: "VK_EXT_global_priority_query";
-EXT_multi_draw                                          :: 1;
-EXT_MULTI_DRAW_SPEC_VERSION                             :: 1;
-EXT_MULTI_DRAW_EXTENSION_NAME                           :: "VK_EXT_multi_draw";
-EXT_load_store_op_none                                  :: 1;
-EXT_LOAD_STORE_OP_NONE_SPEC_VERSION                     :: 1;
-EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME                   :: "VK_EXT_load_store_op_none";
-KHR_acceleration_structure                              :: 1;
-KHR_ACCELERATION_STRUCTURE_SPEC_VERSION                 :: 12;
-KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME               :: "VK_KHR_acceleration_structure";
-KHR_ray_tracing_pipeline                                :: 1;
-KHR_RAY_TRACING_PIPELINE_SPEC_VERSION                   :: 1;
-KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME                 :: "VK_KHR_ray_tracing_pipeline";
-KHR_ray_query                                           :: 1;
-KHR_RAY_QUERY_SPEC_VERSION                              :: 1;
-KHR_RAY_QUERY_EXTENSION_NAME                            :: "VK_KHR_ray_query";
-KHR_win32_surface                                       :: 1;
-KHR_WIN32_SURFACE_SPEC_VERSION                          :: 6;
-KHR_WIN32_SURFACE_EXTENSION_NAME                        :: "VK_KHR_win32_surface";
-KHR_external_memory_win32                               :: 1;
-KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION                  :: 1;
-KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME                :: "VK_KHR_external_memory_win32";
-KHR_win32_keyed_mutex                                   :: 1;
-KHR_WIN32_KEYED_MUTEX_SPEC_VERSION                      :: 1;
-KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME                    :: "VK_KHR_win32_keyed_mutex";
-KHR_external_semaphore_win32                            :: 1;
-KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION               :: 1;
-KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME             :: "VK_KHR_external_semaphore_win32";
-KHR_external_fence_win32                                :: 1;
-KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION                   :: 1;
-KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME                 :: "VK_KHR_external_fence_win32";
-NV_external_memory_win32                                :: 1;
-NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION                   :: 1;
-NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME                 :: "VK_NV_external_memory_win32";
-NV_win32_keyed_mutex                                    :: 1;
-NV_WIN32_KEYED_MUTEX_SPEC_VERSION                       :: 2;
-NV_WIN32_KEYED_MUTEX_EXTENSION_NAME                     :: "VK_NV_win32_keyed_mutex";
-EXT_full_screen_exclusive                               :: 1;
-EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION                  :: 4;
-EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME                :: "VK_EXT_full_screen_exclusive";
-EXT_metal_surface                                       :: 1;
-EXT_METAL_SURFACE_SPEC_VERSION                          :: 1;
-EXT_METAL_SURFACE_EXTENSION_NAME                        :: "VK_EXT_metal_surface";
+KHR_surface                                             :: 1
+KHR_SURFACE_SPEC_VERSION                                :: 25
+KHR_SURFACE_EXTENSION_NAME                              :: "VK_KHR_surface"
+KHR_swapchain                                           :: 1
+KHR_SWAPCHAIN_SPEC_VERSION                              :: 70
+KHR_SWAPCHAIN_EXTENSION_NAME                            :: "VK_KHR_swapchain"
+KHR_display                                             :: 1
+KHR_DISPLAY_SPEC_VERSION                                :: 23
+KHR_DISPLAY_EXTENSION_NAME                              :: "VK_KHR_display"
+KHR_display_swapchain                                   :: 1
+KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION                      :: 10
+KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME                    :: "VK_KHR_display_swapchain"
+KHR_sampler_mirror_clamp_to_edge                        :: 1
+KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION           :: 3
+KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME         :: "VK_KHR_sampler_mirror_clamp_to_edge"
+KHR_multiview                                           :: 1
+KHR_MULTIVIEW_SPEC_VERSION                              :: 1
+KHR_MULTIVIEW_EXTENSION_NAME                            :: "VK_KHR_multiview"
+KHR_get_physical_device_properties2                     :: 1
+KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION       :: 2
+KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     :: "VK_KHR_get_physical_device_properties2"
+KHR_device_group                                        :: 1
+KHR_DEVICE_GROUP_SPEC_VERSION                           :: 4
+KHR_DEVICE_GROUP_EXTENSION_NAME                         :: "VK_KHR_device_group"
+KHR_shader_draw_parameters                              :: 1
+KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION                 :: 1
+KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME               :: "VK_KHR_shader_draw_parameters"
+KHR_maintenance1                                        :: 1
+KHR_MAINTENANCE1_SPEC_VERSION                           :: 2
+KHR_MAINTENANCE1_EXTENSION_NAME                         :: "VK_KHR_maintenance1"
+KHR_device_group_creation                               :: 1
+KHR_DEVICE_GROUP_CREATION_SPEC_VERSION                  :: 1
+KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME                :: "VK_KHR_device_group_creation"
+KHR_external_memory_capabilities                        :: 1
+KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION           :: 1
+KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME         :: "VK_KHR_external_memory_capabilities"
+KHR_external_memory                                     :: 1
+KHR_EXTERNAL_MEMORY_SPEC_VERSION                        :: 1
+KHR_EXTERNAL_MEMORY_EXTENSION_NAME                      :: "VK_KHR_external_memory"
+KHR_external_memory_fd                                  :: 1
+KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION                     :: 1
+KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME                   :: "VK_KHR_external_memory_fd"
+KHR_external_semaphore_capabilities                     :: 1
+KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION        :: 1
+KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME      :: "VK_KHR_external_semaphore_capabilities"
+KHR_external_semaphore                                  :: 1
+KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION                     :: 1
+KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME                   :: "VK_KHR_external_semaphore"
+KHR_external_semaphore_fd                               :: 1
+KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION                  :: 1
+KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME                :: "VK_KHR_external_semaphore_fd"
+KHR_push_descriptor                                     :: 1
+KHR_PUSH_DESCRIPTOR_SPEC_VERSION                        :: 2
+KHR_PUSH_DESCRIPTOR_EXTENSION_NAME                      :: "VK_KHR_push_descriptor"
+KHR_shader_float16_int8                                 :: 1
+KHR_SHADER_FLOAT16_INT8_SPEC_VERSION                    :: 1
+KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME                  :: "VK_KHR_shader_float16_int8"
+KHR_16bit_storage                                       :: 1
+KHR_16BIT_STORAGE_SPEC_VERSION                          :: 1
+KHR_16BIT_STORAGE_EXTENSION_NAME                        :: "VK_KHR_16bit_storage"
+KHR_incremental_present                                 :: 1
+KHR_INCREMENTAL_PRESENT_SPEC_VERSION                    :: 2
+KHR_INCREMENTAL_PRESENT_EXTENSION_NAME                  :: "VK_KHR_incremental_present"
+KHR_descriptor_update_template                          :: 1
+KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION             :: 1
+KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME           :: "VK_KHR_descriptor_update_template"
+KHR_imageless_framebuffer                               :: 1
+KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION                  :: 1
+KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME                :: "VK_KHR_imageless_framebuffer"
+KHR_create_renderpass2                                  :: 1
+KHR_CREATE_RENDERPASS_2_SPEC_VERSION                    :: 1
+KHR_CREATE_RENDERPASS_2_EXTENSION_NAME                  :: "VK_KHR_create_renderpass2"
+KHR_shared_presentable_image                            :: 1
+KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION               :: 1
+KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME             :: "VK_KHR_shared_presentable_image"
+KHR_external_fence_capabilities                         :: 1
+KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION            :: 1
+KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME          :: "VK_KHR_external_fence_capabilities"
+KHR_external_fence                                      :: 1
+KHR_EXTERNAL_FENCE_SPEC_VERSION                         :: 1
+KHR_EXTERNAL_FENCE_EXTENSION_NAME                       :: "VK_KHR_external_fence"
+KHR_external_fence_fd                                   :: 1
+KHR_EXTERNAL_FENCE_FD_SPEC_VERSION                      :: 1
+KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME                    :: "VK_KHR_external_fence_fd"
+KHR_performance_query                                   :: 1
+KHR_PERFORMANCE_QUERY_SPEC_VERSION                      :: 1
+KHR_PERFORMANCE_QUERY_EXTENSION_NAME                    :: "VK_KHR_performance_query"
+KHR_maintenance2                                        :: 1
+KHR_MAINTENANCE2_SPEC_VERSION                           :: 1
+KHR_MAINTENANCE2_EXTENSION_NAME                         :: "VK_KHR_maintenance2"
+KHR_get_surface_capabilities2                           :: 1
+KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION             :: 1
+KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME           :: "VK_KHR_get_surface_capabilities2"
+KHR_variable_pointers                                   :: 1
+KHR_VARIABLE_POINTERS_SPEC_VERSION                      :: 1
+KHR_VARIABLE_POINTERS_EXTENSION_NAME                    :: "VK_KHR_variable_pointers"
+KHR_get_display_properties2                             :: 1
+KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION               :: 1
+KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME             :: "VK_KHR_get_display_properties2"
+KHR_dedicated_allocation                                :: 1
+KHR_DEDICATED_ALLOCATION_SPEC_VERSION                   :: 3
+KHR_DEDICATED_ALLOCATION_EXTENSION_NAME                 :: "VK_KHR_dedicated_allocation"
+KHR_storage_buffer_storage_class                        :: 1
+KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION           :: 1
+KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME         :: "VK_KHR_storage_buffer_storage_class"
+KHR_relaxed_block_layout                                :: 1
+KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION                   :: 1
+KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME                 :: "VK_KHR_relaxed_block_layout"
+KHR_get_memory_requirements2                            :: 1
+KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION              :: 1
+KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME            :: "VK_KHR_get_memory_requirements2"
+KHR_image_format_list                                   :: 1
+KHR_IMAGE_FORMAT_LIST_SPEC_VERSION                      :: 1
+KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME                    :: "VK_KHR_image_format_list"
+KHR_sampler_ycbcr_conversion                            :: 1
+KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION               :: 14
+KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME             :: "VK_KHR_sampler_ycbcr_conversion"
+KHR_bind_memory2                                        :: 1
+KHR_BIND_MEMORY_2_SPEC_VERSION                          :: 1
+KHR_BIND_MEMORY_2_EXTENSION_NAME                        :: "VK_KHR_bind_memory2"
+KHR_maintenance3                                        :: 1
+KHR_MAINTENANCE3_SPEC_VERSION                           :: 1
+KHR_MAINTENANCE3_EXTENSION_NAME                         :: "VK_KHR_maintenance3"
+KHR_draw_indirect_count                                 :: 1
+KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION                    :: 1
+KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME                  :: "VK_KHR_draw_indirect_count"
+KHR_shader_subgroup_extended_types                      :: 1
+KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION         :: 1
+KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME       :: "VK_KHR_shader_subgroup_extended_types"
+KHR_8bit_storage                                        :: 1
+KHR_8BIT_STORAGE_SPEC_VERSION                           :: 1
+KHR_8BIT_STORAGE_EXTENSION_NAME                         :: "VK_KHR_8bit_storage"
+KHR_shader_atomic_int64                                 :: 1
+KHR_SHADER_ATOMIC_INT64_SPEC_VERSION                    :: 1
+KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME                  :: "VK_KHR_shader_atomic_int64"
+KHR_shader_clock                                        :: 1
+KHR_SHADER_CLOCK_SPEC_VERSION                           :: 1
+KHR_SHADER_CLOCK_EXTENSION_NAME                         :: "VK_KHR_shader_clock"
+KHR_driver_properties                                   :: 1
+KHR_DRIVER_PROPERTIES_SPEC_VERSION                      :: 1
+KHR_DRIVER_PROPERTIES_EXTENSION_NAME                    :: "VK_KHR_driver_properties"
+KHR_shader_float_controls                               :: 1
+KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION                  :: 4
+KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME                :: "VK_KHR_shader_float_controls"
+KHR_depth_stencil_resolve                               :: 1
+KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION                  :: 1
+KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME                :: "VK_KHR_depth_stencil_resolve"
+KHR_swapchain_mutable_format                            :: 1
+KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION               :: 1
+KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME             :: "VK_KHR_swapchain_mutable_format"
+KHR_timeline_semaphore                                  :: 1
+KHR_TIMELINE_SEMAPHORE_SPEC_VERSION                     :: 2
+KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME                   :: "VK_KHR_timeline_semaphore"
+KHR_vulkan_memory_model                                 :: 1
+KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION                    :: 3
+KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME                  :: "VK_KHR_vulkan_memory_model"
+KHR_shader_terminate_invocation                         :: 1
+KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION            :: 1
+KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME          :: "VK_KHR_shader_terminate_invocation"
+KHR_fragment_shading_rate                               :: 1
+KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION                  :: 1
+KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME                :: "VK_KHR_fragment_shading_rate"
+KHR_spirv_1_4                                           :: 1
+KHR_SPIRV_1_4_SPEC_VERSION                              :: 1
+KHR_SPIRV_1_4_EXTENSION_NAME                            :: "VK_KHR_spirv_1_4"
+KHR_surface_protected_capabilities                      :: 1
+KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION         :: 1
+KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME       :: "VK_KHR_surface_protected_capabilities"
+KHR_separate_depth_stencil_layouts                      :: 1
+KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION         :: 1
+KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME       :: "VK_KHR_separate_depth_stencil_layouts"
+KHR_present_wait                                        :: 1
+KHR_PRESENT_WAIT_SPEC_VERSION                           :: 1
+KHR_PRESENT_WAIT_EXTENSION_NAME                         :: "VK_KHR_present_wait"
+KHR_uniform_buffer_standard_layout                      :: 1
+KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION         :: 1
+KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME       :: "VK_KHR_uniform_buffer_standard_layout"
+KHR_buffer_device_address                               :: 1
+KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION                  :: 1
+KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME                :: "VK_KHR_buffer_device_address"
+KHR_deferred_host_operations                            :: 1
+KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION               :: 4
+KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME             :: "VK_KHR_deferred_host_operations"
+KHR_pipeline_executable_properties                      :: 1
+KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION         :: 1
+KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME       :: "VK_KHR_pipeline_executable_properties"
+KHR_pipeline_library                                    :: 1
+KHR_PIPELINE_LIBRARY_SPEC_VERSION                       :: 1
+KHR_PIPELINE_LIBRARY_EXTENSION_NAME                     :: "VK_KHR_pipeline_library"
+KHR_shader_non_semantic_info                            :: 1
+KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION               :: 1
+KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME             :: "VK_KHR_shader_non_semantic_info"
+KHR_present_id                                          :: 1
+KHR_PRESENT_ID_SPEC_VERSION                             :: 1
+KHR_PRESENT_ID_EXTENSION_NAME                           :: "VK_KHR_present_id"
+KHR_synchronization2                                    :: 1
+KHR_SYNCHRONIZATION_2_SPEC_VERSION                      :: 1
+KHR_SYNCHRONIZATION_2_EXTENSION_NAME                    :: "VK_KHR_synchronization2"
+KHR_shader_subgroup_uniform_control_flow                :: 1
+KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION   :: 1
+KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME :: "VK_KHR_shader_subgroup_uniform_control_flow"
+KHR_zero_initialize_workgroup_memory                    :: 1
+KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION       :: 1
+KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME     :: "VK_KHR_zero_initialize_workgroup_memory"
+KHR_workgroup_memory_explicit_layout                    :: 1
+KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION       :: 1
+KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME     :: "VK_KHR_workgroup_memory_explicit_layout"
+KHR_copy_commands2                                      :: 1
+KHR_COPY_COMMANDS_2_SPEC_VERSION                        :: 1
+KHR_COPY_COMMANDS_2_EXTENSION_NAME                      :: "VK_KHR_copy_commands2"
+EXT_debug_report                                        :: 1
+EXT_DEBUG_REPORT_SPEC_VERSION                           :: 10
+EXT_DEBUG_REPORT_EXTENSION_NAME                         :: "VK_EXT_debug_report"
+NV_glsl_shader                                          :: 1
+NV_GLSL_SHADER_SPEC_VERSION                             :: 1
+NV_GLSL_SHADER_EXTENSION_NAME                           :: "VK_NV_glsl_shader"
+EXT_depth_range_unrestricted                            :: 1
+EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION               :: 1
+EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME             :: "VK_EXT_depth_range_unrestricted"
+AMD_rasterization_order                                 :: 1
+AMD_RASTERIZATION_ORDER_SPEC_VERSION                    :: 1
+AMD_RASTERIZATION_ORDER_EXTENSION_NAME                  :: "VK_AMD_rasterization_order"
+AMD_shader_trinary_minmax                               :: 1
+AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION                  :: 1
+AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME                :: "VK_AMD_shader_trinary_minmax"
+AMD_shader_explicit_vertex_parameter                    :: 1
+AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION       :: 1
+AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME     :: "VK_AMD_shader_explicit_vertex_parameter"
+EXT_debug_marker                                        :: 1
+EXT_DEBUG_MARKER_SPEC_VERSION                           :: 4
+EXT_DEBUG_MARKER_EXTENSION_NAME                         :: "VK_EXT_debug_marker"
+AMD_gcn_shader                                          :: 1
+AMD_GCN_SHADER_SPEC_VERSION                             :: 1
+AMD_GCN_SHADER_EXTENSION_NAME                           :: "VK_AMD_gcn_shader"
+NV_dedicated_allocation                                 :: 1
+NV_DEDICATED_ALLOCATION_SPEC_VERSION                    :: 1
+NV_DEDICATED_ALLOCATION_EXTENSION_NAME                  :: "VK_NV_dedicated_allocation"
+EXT_transform_feedback                                  :: 1
+EXT_TRANSFORM_FEEDBACK_SPEC_VERSION                     :: 1
+EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME                   :: "VK_EXT_transform_feedback"
+NVX_binary_import                                       :: 1
+NVX_BINARY_IMPORT_SPEC_VERSION                          :: 1
+NVX_BINARY_IMPORT_EXTENSION_NAME                        :: "VK_NVX_binary_import"
+NVX_image_view_handle                                   :: 1
+NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION                      :: 2
+NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME                    :: "VK_NVX_image_view_handle"
+AMD_draw_indirect_count                                 :: 1
+AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION                    :: 2
+AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME                  :: "VK_AMD_draw_indirect_count"
+AMD_negative_viewport_height                            :: 1
+AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION               :: 1
+AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME             :: "VK_AMD_negative_viewport_height"
+AMD_gpu_shader_half_float                               :: 1
+AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION                  :: 2
+AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME                :: "VK_AMD_gpu_shader_half_float"
+AMD_shader_ballot                                       :: 1
+AMD_SHADER_BALLOT_SPEC_VERSION                          :: 1
+AMD_SHADER_BALLOT_EXTENSION_NAME                        :: "VK_AMD_shader_ballot"
+AMD_texture_gather_bias_lod                             :: 1
+AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION                :: 1
+AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME              :: "VK_AMD_texture_gather_bias_lod"
+AMD_shader_info                                         :: 1
+AMD_SHADER_INFO_SPEC_VERSION                            :: 1
+AMD_SHADER_INFO_EXTENSION_NAME                          :: "VK_AMD_shader_info"
+AMD_shader_image_load_store_lod                         :: 1
+AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION            :: 1
+AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME          :: "VK_AMD_shader_image_load_store_lod"
+NV_corner_sampled_image                                 :: 1
+NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION                    :: 2
+NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME                  :: "VK_NV_corner_sampled_image"
+NV_external_memory_capabilities                         :: 1
+NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION            :: 1
+NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME          :: "VK_NV_external_memory_capabilities"
+NV_external_memory                                      :: 1
+NV_EXTERNAL_MEMORY_SPEC_VERSION                         :: 1
+NV_EXTERNAL_MEMORY_EXTENSION_NAME                       :: "VK_NV_external_memory"
+EXT_validation_flags                                    :: 1
+EXT_VALIDATION_FLAGS_SPEC_VERSION                       :: 2
+EXT_VALIDATION_FLAGS_EXTENSION_NAME                     :: "VK_EXT_validation_flags"
+EXT_shader_subgroup_ballot                              :: 1
+EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION                 :: 1
+EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME               :: "VK_EXT_shader_subgroup_ballot"
+EXT_shader_subgroup_vote                                :: 1
+EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION                   :: 1
+EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME                 :: "VK_EXT_shader_subgroup_vote"
+EXT_texture_compression_astc_hdr                        :: 1
+EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION           :: 1
+EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME         :: "VK_EXT_texture_compression_astc_hdr"
+EXT_astc_decode_mode                                    :: 1
+EXT_ASTC_DECODE_MODE_SPEC_VERSION                       :: 1
+EXT_ASTC_DECODE_MODE_EXTENSION_NAME                     :: "VK_EXT_astc_decode_mode"
+EXT_conditional_rendering                               :: 1
+EXT_CONDITIONAL_RENDERING_SPEC_VERSION                  :: 2
+EXT_CONDITIONAL_RENDERING_EXTENSION_NAME                :: "VK_EXT_conditional_rendering"
+NV_clip_space_w_scaling                                 :: 1
+NV_CLIP_SPACE_W_SCALING_SPEC_VERSION                    :: 1
+NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME                  :: "VK_NV_clip_space_w_scaling"
+EXT_direct_mode_display                                 :: 1
+EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION                    :: 1
+EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME                  :: "VK_EXT_direct_mode_display"
+EXT_display_surface_counter                             :: 1
+EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION                :: 1
+EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME              :: "VK_EXT_display_surface_counter"
+EXT_display_control                                     :: 1
+EXT_DISPLAY_CONTROL_SPEC_VERSION                        :: 1
+EXT_DISPLAY_CONTROL_EXTENSION_NAME                      :: "VK_EXT_display_control"
+GOOGLE_display_timing                                   :: 1
+GOOGLE_DISPLAY_TIMING_SPEC_VERSION                      :: 1
+GOOGLE_DISPLAY_TIMING_EXTENSION_NAME                    :: "VK_GOOGLE_display_timing"
+NV_sample_mask_override_coverage                        :: 1
+NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION           :: 1
+NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME         :: "VK_NV_sample_mask_override_coverage"
+NV_geometry_shader_passthrough                          :: 1
+NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION             :: 1
+NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME           :: "VK_NV_geometry_shader_passthrough"
+NV_viewport_array2                                      :: 1
+NV_VIEWPORT_ARRAY2_SPEC_VERSION                         :: 1
+NV_VIEWPORT_ARRAY2_EXTENSION_NAME                       :: "VK_NV_viewport_array2"
+NVX_multiview_per_view_attributes                       :: 1
+NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION          :: 1
+NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME        :: "VK_NVX_multiview_per_view_attributes"
+NV_viewport_swizzle                                     :: 1
+NV_VIEWPORT_SWIZZLE_SPEC_VERSION                        :: 1
+NV_VIEWPORT_SWIZZLE_EXTENSION_NAME                      :: "VK_NV_viewport_swizzle"
+EXT_discard_rectangles                                  :: 1
+EXT_DISCARD_RECTANGLES_SPEC_VERSION                     :: 1
+EXT_DISCARD_RECTANGLES_EXTENSION_NAME                   :: "VK_EXT_discard_rectangles"
+EXT_conservative_rasterization                          :: 1
+EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION             :: 1
+EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME           :: "VK_EXT_conservative_rasterization"
+EXT_depth_clip_enable                                   :: 1
+EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION                      :: 1
+EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME                    :: "VK_EXT_depth_clip_enable"
+EXT_swapchain_colorspace                                :: 1
+EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION                  :: 4
+EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME                :: "VK_EXT_swapchain_colorspace"
+EXT_hdr_metadata                                        :: 1
+EXT_HDR_METADATA_SPEC_VERSION                           :: 2
+EXT_HDR_METADATA_EXTENSION_NAME                         :: "VK_EXT_hdr_metadata"
+EXT_external_memory_dma_buf                             :: 1
+EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION                :: 1
+EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME              :: "VK_EXT_external_memory_dma_buf"
+EXT_queue_family_foreign                                :: 1
+EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION                   :: 1
+EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME                 :: "VK_EXT_queue_family_foreign"
+EXT_debug_utils                                         :: 1
+EXT_DEBUG_UTILS_SPEC_VERSION                            :: 2
+EXT_DEBUG_UTILS_EXTENSION_NAME                          :: "VK_EXT_debug_utils"
+EXT_sampler_filter_minmax                               :: 1
+EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION                  :: 2
+EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME                :: "VK_EXT_sampler_filter_minmax"
+AMD_gpu_shader_int16                                    :: 1
+AMD_GPU_SHADER_INT16_SPEC_VERSION                       :: 2
+AMD_GPU_SHADER_INT16_EXTENSION_NAME                     :: "VK_AMD_gpu_shader_int16"
+AMD_mixed_attachment_samples                            :: 1
+AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION               :: 1
+AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME             :: "VK_AMD_mixed_attachment_samples"
+AMD_shader_fragment_mask                                :: 1
+AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION                   :: 1
+AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME                 :: "VK_AMD_shader_fragment_mask"
+EXT_inline_uniform_block                                :: 1
+EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION                   :: 1
+EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME                 :: "VK_EXT_inline_uniform_block"
+EXT_shader_stencil_export                               :: 1
+EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION                  :: 1
+EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME                :: "VK_EXT_shader_stencil_export"
+EXT_sample_locations                                    :: 1
+EXT_SAMPLE_LOCATIONS_SPEC_VERSION                       :: 1
+EXT_SAMPLE_LOCATIONS_EXTENSION_NAME                     :: "VK_EXT_sample_locations"
+EXT_blend_operation_advanced                            :: 1
+EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION               :: 2
+EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME             :: "VK_EXT_blend_operation_advanced"
+NV_fragment_coverage_to_color                           :: 1
+NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION              :: 1
+NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME            :: "VK_NV_fragment_coverage_to_color"
+NV_framebuffer_mixed_samples                            :: 1
+NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION               :: 1
+NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME             :: "VK_NV_framebuffer_mixed_samples"
+NV_fill_rectangle                                       :: 1
+NV_FILL_RECTANGLE_SPEC_VERSION                          :: 1
+NV_FILL_RECTANGLE_EXTENSION_NAME                        :: "VK_NV_fill_rectangle"
+NV_shader_sm_builtins                                   :: 1
+NV_SHADER_SM_BUILTINS_SPEC_VERSION                      :: 1
+NV_SHADER_SM_BUILTINS_EXTENSION_NAME                    :: "VK_NV_shader_sm_builtins"
+EXT_post_depth_coverage                                 :: 1
+EXT_POST_DEPTH_COVERAGE_SPEC_VERSION                    :: 1
+EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME                  :: "VK_EXT_post_depth_coverage"
+EXT_image_drm_format_modifier                           :: 1
+EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION              :: 1
+EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME            :: "VK_EXT_image_drm_format_modifier"
+EXT_validation_cache                                    :: 1
+EXT_VALIDATION_CACHE_SPEC_VERSION                       :: 1
+EXT_VALIDATION_CACHE_EXTENSION_NAME                     :: "VK_EXT_validation_cache"
+EXT_descriptor_indexing                                 :: 1
+EXT_DESCRIPTOR_INDEXING_SPEC_VERSION                    :: 2
+EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                  :: "VK_EXT_descriptor_indexing"
+EXT_shader_viewport_index_layer                         :: 1
+EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION            :: 1
+EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME          :: "VK_EXT_shader_viewport_index_layer"
+NV_shading_rate_image                                   :: 1
+NV_SHADING_RATE_IMAGE_SPEC_VERSION                      :: 3
+NV_SHADING_RATE_IMAGE_EXTENSION_NAME                    :: "VK_NV_shading_rate_image"
+NV_ray_tracing                                          :: 1
+NV_RAY_TRACING_SPEC_VERSION                             :: 3
+NV_RAY_TRACING_EXTENSION_NAME                           :: "VK_NV_ray_tracing"
+NV_representative_fragment_test                         :: 1
+NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION            :: 2
+NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME          :: "VK_NV_representative_fragment_test"
+EXT_filter_cubic                                        :: 1
+EXT_FILTER_CUBIC_SPEC_VERSION                           :: 3
+EXT_FILTER_CUBIC_EXTENSION_NAME                         :: "VK_EXT_filter_cubic"
+EXT_global_priority                                     :: 1
+EXT_GLOBAL_PRIORITY_SPEC_VERSION                        :: 2
+EXT_GLOBAL_PRIORITY_EXTENSION_NAME                      :: "VK_EXT_global_priority"
+EXT_external_memory_host                                :: 1
+EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION                   :: 1
+EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME                 :: "VK_EXT_external_memory_host"
+AMD_buffer_marker                                       :: 1
+AMD_BUFFER_MARKER_SPEC_VERSION                          :: 1
+AMD_BUFFER_MARKER_EXTENSION_NAME                        :: "VK_AMD_buffer_marker"
+AMD_pipeline_compiler_control                           :: 1
+AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION              :: 1
+AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME            :: "VK_AMD_pipeline_compiler_control"
+EXT_calibrated_timestamps                               :: 1
+EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION                  :: 2
+EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME                :: "VK_EXT_calibrated_timestamps"
+AMD_shader_core_properties                              :: 1
+AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION                 :: 2
+AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME               :: "VK_AMD_shader_core_properties"
+AMD_memory_overallocation_behavior                      :: 1
+AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION         :: 1
+AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME       :: "VK_AMD_memory_overallocation_behavior"
+EXT_vertex_attribute_divisor                            :: 1
+EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION               :: 3
+EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME             :: "VK_EXT_vertex_attribute_divisor"
+EXT_pipeline_creation_feedback                          :: 1
+EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION             :: 1
+EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME           :: "VK_EXT_pipeline_creation_feedback"
+NV_shader_subgroup_partitioned                          :: 1
+NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION             :: 1
+NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME           :: "VK_NV_shader_subgroup_partitioned"
+NV_compute_shader_derivatives                           :: 1
+NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION              :: 1
+NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME            :: "VK_NV_compute_shader_derivatives"
+NV_mesh_shader                                          :: 1
+NV_MESH_SHADER_SPEC_VERSION                             :: 1
+NV_MESH_SHADER_EXTENSION_NAME                           :: "VK_NV_mesh_shader"
+NV_fragment_shader_barycentric                          :: 1
+NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION             :: 1
+NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME           :: "VK_NV_fragment_shader_barycentric"
+NV_shader_image_footprint                               :: 1
+NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION                  :: 2
+NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME                :: "VK_NV_shader_image_footprint"
+NV_scissor_exclusive                                    :: 1
+NV_SCISSOR_EXCLUSIVE_SPEC_VERSION                       :: 1
+NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME                     :: "VK_NV_scissor_exclusive"
+NV_device_diagnostic_checkpoints                        :: 1
+NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION           :: 2
+NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME         :: "VK_NV_device_diagnostic_checkpoints"
+EXT_pci_bus_info                                        :: 1
+EXT_PCI_BUS_INFO_SPEC_VERSION                           :: 2
+EXT_PCI_BUS_INFO_EXTENSION_NAME                         :: "VK_EXT_pci_bus_info"
+AMD_display_native_hdr                                  :: 1
+AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION                     :: 1
+AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME                   :: "VK_AMD_display_native_hdr"
+EXT_fragment_density_map                                :: 1
+EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION                   :: 1
+EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME                 :: "VK_EXT_fragment_density_map"
+EXT_scalar_block_layout                                 :: 1
+EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION                    :: 1
+EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME                  :: "VK_EXT_scalar_block_layout"
+GOOGLE_hlsl_functionality1                              :: 1
+GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION                 :: 1
+GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME               :: "VK_GOOGLE_hlsl_functionality1"
+GOOGLE_decorate_string                                  :: 1
+GOOGLE_DECORATE_STRING_SPEC_VERSION                     :: 1
+GOOGLE_DECORATE_STRING_EXTENSION_NAME                   :: "VK_GOOGLE_decorate_string"
+EXT_subgroup_size_control                               :: 1
+EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION                  :: 2
+EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME                :: "VK_EXT_subgroup_size_control"
+AMD_shader_core_properties2                             :: 1
+AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION               :: 1
+AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME             :: "VK_AMD_shader_core_properties2"
+AMD_device_coherent_memory                              :: 1
+AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION                 :: 1
+AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME               :: "VK_AMD_device_coherent_memory"
+EXT_shader_image_atomic_int64                           :: 1
+EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION              :: 1
+EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME            :: "VK_EXT_shader_image_atomic_int64"
+EXT_memory_budget                                       :: 1
+EXT_MEMORY_BUDGET_SPEC_VERSION                          :: 1
+EXT_MEMORY_BUDGET_EXTENSION_NAME                        :: "VK_EXT_memory_budget"
+EXT_memory_priority                                     :: 1
+EXT_MEMORY_PRIORITY_SPEC_VERSION                        :: 1
+EXT_MEMORY_PRIORITY_EXTENSION_NAME                      :: "VK_EXT_memory_priority"
+NV_dedicated_allocation_image_aliasing                  :: 1
+NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION     :: 1
+NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME   :: "VK_NV_dedicated_allocation_image_aliasing"
+EXT_buffer_device_address                               :: 1
+EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION                  :: 2
+EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME                :: "VK_EXT_buffer_device_address"
+EXT_tooling_info                                        :: 1
+EXT_TOOLING_INFO_SPEC_VERSION                           :: 1
+EXT_TOOLING_INFO_EXTENSION_NAME                         :: "VK_EXT_tooling_info"
+EXT_separate_stencil_usage                              :: 1
+EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION                 :: 1
+EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME               :: "VK_EXT_separate_stencil_usage"
+EXT_validation_features                                 :: 1
+EXT_VALIDATION_FEATURES_SPEC_VERSION                    :: 5
+EXT_VALIDATION_FEATURES_EXTENSION_NAME                  :: "VK_EXT_validation_features"
+NV_cooperative_matrix                                   :: 1
+NV_COOPERATIVE_MATRIX_SPEC_VERSION                      :: 1
+NV_COOPERATIVE_MATRIX_EXTENSION_NAME                    :: "VK_NV_cooperative_matrix"
+NV_coverage_reduction_mode                              :: 1
+NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION                 :: 1
+NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME               :: "VK_NV_coverage_reduction_mode"
+EXT_fragment_shader_interlock                           :: 1
+EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION              :: 1
+EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME            :: "VK_EXT_fragment_shader_interlock"
+EXT_ycbcr_image_arrays                                  :: 1
+EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION                     :: 1
+EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME                   :: "VK_EXT_ycbcr_image_arrays"
+EXT_provoking_vertex                                    :: 1
+EXT_PROVOKING_VERTEX_SPEC_VERSION                       :: 1
+EXT_PROVOKING_VERTEX_EXTENSION_NAME                     :: "VK_EXT_provoking_vertex"
+EXT_headless_surface                                    :: 1
+EXT_HEADLESS_SURFACE_SPEC_VERSION                       :: 1
+EXT_HEADLESS_SURFACE_EXTENSION_NAME                     :: "VK_EXT_headless_surface"
+EXT_line_rasterization                                  :: 1
+EXT_LINE_RASTERIZATION_SPEC_VERSION                     :: 1
+EXT_LINE_RASTERIZATION_EXTENSION_NAME                   :: "VK_EXT_line_rasterization"
+EXT_shader_atomic_float                                 :: 1
+EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION                    :: 1
+EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME                  :: "VK_EXT_shader_atomic_float"
+EXT_host_query_reset                                    :: 1
+EXT_HOST_QUERY_RESET_SPEC_VERSION                       :: 1
+EXT_HOST_QUERY_RESET_EXTENSION_NAME                     :: "VK_EXT_host_query_reset"
+EXT_index_type_uint8                                    :: 1
+EXT_INDEX_TYPE_UINT8_SPEC_VERSION                       :: 1
+EXT_INDEX_TYPE_UINT8_EXTENSION_NAME                     :: "VK_EXT_index_type_uint8"
+EXT_extended_dynamic_state                              :: 1
+EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION                 :: 1
+EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME               :: "VK_EXT_extended_dynamic_state"
+EXT_shader_atomic_float2                                :: 1
+EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION                  :: 1
+EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME                :: "VK_EXT_shader_atomic_float2"
+EXT_shader_demote_to_helper_invocation                  :: 1
+EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION     :: 1
+EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME   :: "VK_EXT_shader_demote_to_helper_invocation"
+NV_device_generated_commands                            :: 1
+NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION               :: 3
+NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME             :: "VK_NV_device_generated_commands"
+NV_inherited_viewport_scissor                           :: 1
+NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION              :: 1
+NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME            :: "VK_NV_inherited_viewport_scissor"
+EXT_texel_buffer_alignment                              :: 1
+EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION                 :: 1
+EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME               :: "VK_EXT_texel_buffer_alignment"
+EXT_device_memory_report                                :: 1
+EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION                   :: 2
+EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME                 :: "VK_EXT_device_memory_report"
+EXT_acquire_drm_display                                 :: 1
+EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION                    :: 1
+EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME                  :: "VK_EXT_acquire_drm_display"
+EXT_robustness2                                         :: 1
+EXT_ROBUSTNESS_2_SPEC_VERSION                           :: 1
+EXT_ROBUSTNESS_2_EXTENSION_NAME                         :: "VK_EXT_robustness2"
+EXT_custom_border_color                                 :: 1
+EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION                    :: 12
+EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME                  :: "VK_EXT_custom_border_color"
+GOOGLE_user_type                                        :: 1
+GOOGLE_USER_TYPE_SPEC_VERSION                           :: 1
+GOOGLE_USER_TYPE_EXTENSION_NAME                         :: "VK_GOOGLE_user_type"
+EXT_private_data                                        :: 1
+EXT_PRIVATE_DATA_SPEC_VERSION                           :: 1
+EXT_PRIVATE_DATA_EXTENSION_NAME                         :: "VK_EXT_private_data"
+EXT_pipeline_creation_cache_control                     :: 1
+EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION        :: 3
+EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME      :: "VK_EXT_pipeline_creation_cache_control"
+NV_device_diagnostics_config                            :: 1
+NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION               :: 1
+NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME             :: "VK_NV_device_diagnostics_config"
+NV_fragment_shading_rate_enums                          :: 1
+NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION             :: 1
+NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME           :: "VK_NV_fragment_shading_rate_enums"
+NV_ray_tracing_motion_blur                              :: 1
+NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION                 :: 1
+NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME               :: "VK_NV_ray_tracing_motion_blur"
+EXT_ycbcr_2plane_444_formats                            :: 1
+EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION               :: 1
+EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME             :: "VK_EXT_ycbcr_2plane_444_formats"
+EXT_fragment_density_map2                               :: 1
+EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION                 :: 1
+EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME               :: "VK_EXT_fragment_density_map2"
+EXT_image_robustness                                    :: 1
+EXT_IMAGE_ROBUSTNESS_SPEC_VERSION                       :: 1
+EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME                     :: "VK_EXT_image_robustness"
+EXT_4444_formats                                        :: 1
+EXT_4444_FORMATS_SPEC_VERSION                           :: 1
+EXT_4444_FORMATS_EXTENSION_NAME                         :: "VK_EXT_4444_formats"
+NV_acquire_winrt_display                                :: 1
+NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION                   :: 1
+NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME                 :: "VK_NV_acquire_winrt_display"
+EXT_vertex_input_dynamic_state                          :: 1
+EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION             :: 2
+EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME           :: "VK_EXT_vertex_input_dynamic_state"
+EXT_physical_device_drm                                 :: 1
+EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION                    :: 1
+EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME                  :: "VK_EXT_physical_device_drm"
+NV_external_memory_rdma                                 :: 1
+NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION                    :: 1
+NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME                  :: "VK_NV_external_memory_rdma"
+EXT_extended_dynamic_state2                             :: 1
+EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION               :: 1
+EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME             :: "VK_EXT_extended_dynamic_state2"
+EXT_color_write_enable                                  :: 1
+EXT_COLOR_WRITE_ENABLE_SPEC_VERSION                     :: 1
+EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME                   :: "VK_EXT_color_write_enable"
+EXT_global_priority_query                               :: 1
+EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION                  :: 1
+EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME                :: "VK_EXT_global_priority_query"
+EXT_multi_draw                                          :: 1
+EXT_MULTI_DRAW_SPEC_VERSION                             :: 1
+EXT_MULTI_DRAW_EXTENSION_NAME                           :: "VK_EXT_multi_draw"
+EXT_load_store_op_none                                  :: 1
+EXT_LOAD_STORE_OP_NONE_SPEC_VERSION                     :: 1
+EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME                   :: "VK_EXT_load_store_op_none"
+KHR_acceleration_structure                              :: 1
+KHR_ACCELERATION_STRUCTURE_SPEC_VERSION                 :: 12
+KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME               :: "VK_KHR_acceleration_structure"
+KHR_ray_tracing_pipeline                                :: 1
+KHR_RAY_TRACING_PIPELINE_SPEC_VERSION                   :: 1
+KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME                 :: "VK_KHR_ray_tracing_pipeline"
+KHR_ray_query                                           :: 1
+KHR_RAY_QUERY_SPEC_VERSION                              :: 1
+KHR_RAY_QUERY_EXTENSION_NAME                            :: "VK_KHR_ray_query"
+KHR_win32_surface                                       :: 1
+KHR_WIN32_SURFACE_SPEC_VERSION                          :: 6
+KHR_WIN32_SURFACE_EXTENSION_NAME                        :: "VK_KHR_win32_surface"
+KHR_external_memory_win32                               :: 1
+KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION                  :: 1
+KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME                :: "VK_KHR_external_memory_win32"
+KHR_win32_keyed_mutex                                   :: 1
+KHR_WIN32_KEYED_MUTEX_SPEC_VERSION                      :: 1
+KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME                    :: "VK_KHR_win32_keyed_mutex"
+KHR_external_semaphore_win32                            :: 1
+KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION               :: 1
+KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME             :: "VK_KHR_external_semaphore_win32"
+KHR_external_fence_win32                                :: 1
+KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION                   :: 1
+KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME                 :: "VK_KHR_external_fence_win32"
+NV_external_memory_win32                                :: 1
+NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION                   :: 1
+NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME                 :: "VK_NV_external_memory_win32"
+NV_win32_keyed_mutex                                    :: 1
+NV_WIN32_KEYED_MUTEX_SPEC_VERSION                       :: 2
+NV_WIN32_KEYED_MUTEX_EXTENSION_NAME                     :: "VK_NV_win32_keyed_mutex"
+EXT_full_screen_exclusive                               :: 1
+EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION                  :: 4
+EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME                :: "VK_EXT_full_screen_exclusive"
+EXT_metal_surface                                       :: 1
+EXT_METAL_SURFACE_SPEC_VERSION                          :: 1
+EXT_METAL_SURFACE_EXTENSION_NAME                        :: "VK_EXT_metal_surface"
 
 // Handles types
-Instance       :: distinct Handle;
-PhysicalDevice :: distinct Handle;
-Device         :: distinct Handle;
-Queue          :: distinct Handle;
-CommandBuffer  :: distinct Handle;
-Buffer                        :: distinct NonDispatchableHandle;
-Image                         :: distinct NonDispatchableHandle;
-Semaphore                     :: distinct NonDispatchableHandle;
-Fence                         :: distinct NonDispatchableHandle;
-DeviceMemory                  :: distinct NonDispatchableHandle;
-Event                         :: distinct NonDispatchableHandle;
-QueryPool                     :: distinct NonDispatchableHandle;
-BufferView                    :: distinct NonDispatchableHandle;
-ImageView                     :: distinct NonDispatchableHandle;
-ShaderModule                  :: distinct NonDispatchableHandle;
-PipelineCache                 :: distinct NonDispatchableHandle;
-PipelineLayout                :: distinct NonDispatchableHandle;
-Pipeline                      :: distinct NonDispatchableHandle;
-RenderPass                    :: distinct NonDispatchableHandle;
-DescriptorSetLayout           :: distinct NonDispatchableHandle;
-Sampler                       :: distinct NonDispatchableHandle;
-DescriptorSet                 :: distinct NonDispatchableHandle;
-DescriptorPool                :: distinct NonDispatchableHandle;
-Framebuffer                   :: distinct NonDispatchableHandle;
-CommandPool                   :: distinct NonDispatchableHandle;
-SamplerYcbcrConversion        :: distinct NonDispatchableHandle;
-DescriptorUpdateTemplate      :: distinct NonDispatchableHandle;
-SurfaceKHR                    :: distinct NonDispatchableHandle;
-SwapchainKHR                  :: distinct NonDispatchableHandle;
-DisplayKHR                    :: distinct NonDispatchableHandle;
-DisplayModeKHR                :: distinct NonDispatchableHandle;
-DeferredOperationKHR          :: distinct NonDispatchableHandle;
-DebugReportCallbackEXT        :: distinct NonDispatchableHandle;
-CuModuleNVX                   :: distinct NonDispatchableHandle;
-CuFunctionNVX                 :: distinct NonDispatchableHandle;
-DebugUtilsMessengerEXT        :: distinct NonDispatchableHandle;
-ValidationCacheEXT            :: distinct NonDispatchableHandle;
-AccelerationStructureNV       :: distinct NonDispatchableHandle;
-PerformanceConfigurationINTEL :: distinct NonDispatchableHandle;
-IndirectCommandsLayoutNV      :: distinct NonDispatchableHandle;
-PrivateDataSlotEXT            :: distinct NonDispatchableHandle;
-AccelerationStructureKHR      :: distinct NonDispatchableHandle;
+Instance       :: distinct Handle
+PhysicalDevice :: distinct Handle
+Device         :: distinct Handle
+Queue          :: distinct Handle
+CommandBuffer  :: distinct Handle
+Buffer                        :: distinct NonDispatchableHandle
+Image                         :: distinct NonDispatchableHandle
+Semaphore                     :: distinct NonDispatchableHandle
+Fence                         :: distinct NonDispatchableHandle
+DeviceMemory                  :: distinct NonDispatchableHandle
+Event                         :: distinct NonDispatchableHandle
+QueryPool                     :: distinct NonDispatchableHandle
+BufferView                    :: distinct NonDispatchableHandle
+ImageView                     :: distinct NonDispatchableHandle
+ShaderModule                  :: distinct NonDispatchableHandle
+PipelineCache                 :: distinct NonDispatchableHandle
+PipelineLayout                :: distinct NonDispatchableHandle
+Pipeline                      :: distinct NonDispatchableHandle
+RenderPass                    :: distinct NonDispatchableHandle
+DescriptorSetLayout           :: distinct NonDispatchableHandle
+Sampler                       :: distinct NonDispatchableHandle
+DescriptorSet                 :: distinct NonDispatchableHandle
+DescriptorPool                :: distinct NonDispatchableHandle
+Framebuffer                   :: distinct NonDispatchableHandle
+CommandPool                   :: distinct NonDispatchableHandle
+SamplerYcbcrConversion        :: distinct NonDispatchableHandle
+DescriptorUpdateTemplate      :: distinct NonDispatchableHandle
+SurfaceKHR                    :: distinct NonDispatchableHandle
+SwapchainKHR                  :: distinct NonDispatchableHandle
+DisplayKHR                    :: distinct NonDispatchableHandle
+DisplayModeKHR                :: distinct NonDispatchableHandle
+DeferredOperationKHR          :: distinct NonDispatchableHandle
+DebugReportCallbackEXT        :: distinct NonDispatchableHandle
+CuModuleNVX                   :: distinct NonDispatchableHandle
+CuFunctionNVX                 :: distinct NonDispatchableHandle
+DebugUtilsMessengerEXT        :: distinct NonDispatchableHandle
+ValidationCacheEXT            :: distinct NonDispatchableHandle
+AccelerationStructureNV       :: distinct NonDispatchableHandle
+PerformanceConfigurationINTEL :: distinct NonDispatchableHandle
+IndirectCommandsLayoutNV      :: distinct NonDispatchableHandle
+PrivateDataSlotEXT            :: distinct NonDispatchableHandle
+AccelerationStructureKHR      :: distinct NonDispatchableHandle
 
 

+ 170 - 170
vendor/vulkan/enums.odin

@@ -1471,7 +1471,7 @@ SubpassContents :: enum c.int {
 	SECONDARY_COMMAND_BUFFERS = 1,
 }
 
-AccessFlags :: distinct bit_set[AccessFlag; Flags];
+AccessFlags :: distinct bit_set[AccessFlag; Flags]
 AccessFlag :: enum Flags {
 	INDIRECT_COMMAND_READ                     = 0,
 	INDEX_READ                                = 1,
@@ -1506,10 +1506,10 @@ AccessFlag :: enum Flags {
 	ACCELERATION_STRUCTURE_WRITE_NV           = ACCELERATION_STRUCTURE_WRITE_KHR,
 }
 
-AccessFlags_NONE_KHR :: AccessFlags{};
+AccessFlags_NONE_KHR :: AccessFlags{}
 
 
-ImageAspectFlags :: distinct bit_set[ImageAspectFlag; Flags];
+ImageAspectFlags :: distinct bit_set[ImageAspectFlag; Flags]
 ImageAspectFlag :: enum Flags {
 	COLOR              = 0,
 	DEPTH              = 1,
@@ -1527,7 +1527,7 @@ ImageAspectFlag :: enum Flags {
 	PLANE_2_KHR        = PLANE_2,
 }
 
-FormatFeatureFlags :: distinct bit_set[FormatFeatureFlag; Flags];
+FormatFeatureFlags :: distinct bit_set[FormatFeatureFlag; Flags]
 FormatFeatureFlag :: enum Flags {
 	SAMPLED_IMAGE                                                               = 0,
 	STORAGE_IMAGE                                                               = 1,
@@ -1573,7 +1573,7 @@ FormatFeatureFlag :: enum Flags {
 	SAMPLED_IMAGE_FILTER_CUBIC_EXT                                              = SAMPLED_IMAGE_FILTER_CUBIC_IMG,
 }
 
-ImageCreateFlags :: distinct bit_set[ImageCreateFlag; Flags];
+ImageCreateFlags :: distinct bit_set[ImageCreateFlag; Flags]
 ImageCreateFlag :: enum Flags {
 	SPARSE_BINDING                        = 0,
 	SPARSE_RESIDENCY                      = 1,
@@ -1598,7 +1598,7 @@ ImageCreateFlag :: enum Flags {
 	ALIAS_KHR                             = ALIAS,
 }
 
-SampleCountFlags :: distinct bit_set[SampleCountFlag; Flags];
+SampleCountFlags :: distinct bit_set[SampleCountFlag; Flags]
 SampleCountFlag :: enum Flags {
 	_1  = 0,
 	_2  = 1,
@@ -1609,7 +1609,7 @@ SampleCountFlag :: enum Flags {
 	_64 = 6,
 }
 
-ImageUsageFlags :: distinct bit_set[ImageUsageFlag; Flags];
+ImageUsageFlags :: distinct bit_set[ImageUsageFlag; Flags]
 ImageUsageFlag :: enum Flags {
 	TRANSFER_SRC                         = 0,
 	TRANSFER_DST                         = 1,
@@ -1631,14 +1631,14 @@ ImageUsageFlag :: enum Flags {
 	SHADING_RATE_IMAGE_NV                = FRAGMENT_SHADING_RATE_ATTACHMENT_KHR,
 }
 
-MemoryHeapFlags :: distinct bit_set[MemoryHeapFlag; Flags];
+MemoryHeapFlags :: distinct bit_set[MemoryHeapFlag; Flags]
 MemoryHeapFlag :: enum Flags {
 	DEVICE_LOCAL       = 0,
 	MULTI_INSTANCE     = 1,
 	MULTI_INSTANCE_KHR = MULTI_INSTANCE,
 }
 
-MemoryPropertyFlags :: distinct bit_set[MemoryPropertyFlag; Flags];
+MemoryPropertyFlags :: distinct bit_set[MemoryPropertyFlag; Flags]
 MemoryPropertyFlag :: enum Flags {
 	DEVICE_LOCAL        = 0,
 	HOST_VISIBLE        = 1,
@@ -1651,7 +1651,7 @@ MemoryPropertyFlag :: enum Flags {
 	RDMA_CAPABLE_NV     = 8,
 }
 
-QueueFlags :: distinct bit_set[QueueFlag; Flags];
+QueueFlags :: distinct bit_set[QueueFlag; Flags]
 QueueFlag :: enum Flags {
 	GRAPHICS         = 0,
 	COMPUTE          = 1,
@@ -1662,12 +1662,12 @@ QueueFlag :: enum Flags {
 	VIDEO_ENCODE_KHR = 6,
 }
 
-DeviceQueueCreateFlags :: distinct bit_set[DeviceQueueCreateFlag; Flags];
+DeviceQueueCreateFlags :: distinct bit_set[DeviceQueueCreateFlag; Flags]
 DeviceQueueCreateFlag :: enum Flags {
 	PROTECTED = 0,
 }
 
-PipelineStageFlags :: distinct bit_set[PipelineStageFlag; Flags];
+PipelineStageFlags :: distinct bit_set[PipelineStageFlag; Flags]
 PipelineStageFlag :: enum Flags {
 	TOP_OF_PIPE                          = 0,
 	DRAW_INDIRECT                        = 1,
@@ -1700,32 +1700,32 @@ PipelineStageFlag :: enum Flags {
 	ACCELERATION_STRUCTURE_BUILD_NV      = ACCELERATION_STRUCTURE_BUILD_KHR,
 }
 
-PipelineStageFlags_NONE_KHR :: PipelineStageFlags{};
+PipelineStageFlags_NONE_KHR :: PipelineStageFlags{}
 
 
-SparseMemoryBindFlags :: distinct bit_set[SparseMemoryBindFlag; Flags];
+SparseMemoryBindFlags :: distinct bit_set[SparseMemoryBindFlag; Flags]
 SparseMemoryBindFlag :: enum Flags {
 	METADATA = 0,
 }
 
-SparseImageFormatFlags :: distinct bit_set[SparseImageFormatFlag; Flags];
+SparseImageFormatFlags :: distinct bit_set[SparseImageFormatFlag; Flags]
 SparseImageFormatFlag :: enum Flags {
 	SINGLE_MIPTAIL         = 0,
 	ALIGNED_MIP_SIZE       = 1,
 	NONSTANDARD_BLOCK_SIZE = 2,
 }
 
-FenceCreateFlags :: distinct bit_set[FenceCreateFlag; Flags];
+FenceCreateFlags :: distinct bit_set[FenceCreateFlag; Flags]
 FenceCreateFlag :: enum Flags {
 	SIGNALED = 0,
 }
 
-EventCreateFlags :: distinct bit_set[EventCreateFlag; Flags];
+EventCreateFlags :: distinct bit_set[EventCreateFlag; Flags]
 EventCreateFlag :: enum Flags {
 	DEVICE_ONLY_KHR = 0,
 }
 
-QueryPipelineStatisticFlags :: distinct bit_set[QueryPipelineStatisticFlag; Flags];
+QueryPipelineStatisticFlags :: distinct bit_set[QueryPipelineStatisticFlag; Flags]
 QueryPipelineStatisticFlag :: enum Flags {
 	INPUT_ASSEMBLY_VERTICES                    = 0,
 	INPUT_ASSEMBLY_PRIMITIVES                  = 1,
@@ -1740,7 +1740,7 @@ QueryPipelineStatisticFlag :: enum Flags {
 	COMPUTE_SHADER_INVOCATIONS                 = 10,
 }
 
-QueryResultFlags :: distinct bit_set[QueryResultFlag; Flags];
+QueryResultFlags :: distinct bit_set[QueryResultFlag; Flags]
 QueryResultFlag :: enum Flags {
 	_64               = 0,
 	WAIT              = 1,
@@ -1749,7 +1749,7 @@ QueryResultFlag :: enum Flags {
 	WITH_STATUS_KHR   = 4,
 }
 
-BufferCreateFlags :: distinct bit_set[BufferCreateFlag; Flags];
+BufferCreateFlags :: distinct bit_set[BufferCreateFlag; Flags]
 BufferCreateFlag :: enum Flags {
 	SPARSE_BINDING                    = 0,
 	SPARSE_RESIDENCY                  = 1,
@@ -1760,7 +1760,7 @@ BufferCreateFlag :: enum Flags {
 	DEVICE_ADDRESS_CAPTURE_REPLAY_KHR = DEVICE_ADDRESS_CAPTURE_REPLAY,
 }
 
-BufferUsageFlags :: distinct bit_set[BufferUsageFlag; Flags];
+BufferUsageFlags :: distinct bit_set[BufferUsageFlag; Flags]
 BufferUsageFlag :: enum Flags {
 	TRANSFER_SRC                                     = 0,
 	TRANSFER_DST                                     = 1,
@@ -1787,22 +1787,22 @@ BufferUsageFlag :: enum Flags {
 	SHADER_DEVICE_ADDRESS_KHR                        = SHADER_DEVICE_ADDRESS,
 }
 
-ImageViewCreateFlags :: distinct bit_set[ImageViewCreateFlag; Flags];
+ImageViewCreateFlags :: distinct bit_set[ImageViewCreateFlag; Flags]
 ImageViewCreateFlag :: enum Flags {
 	FRAGMENT_DENSITY_MAP_DYNAMIC_EXT  = 0,
 	FRAGMENT_DENSITY_MAP_DEFERRED_EXT = 1,
 }
 
-ShaderModuleCreateFlags :: distinct bit_set[ShaderModuleCreateFlag; Flags];
+ShaderModuleCreateFlags :: distinct bit_set[ShaderModuleCreateFlag; Flags]
 ShaderModuleCreateFlag :: enum Flags {
 }
 
-PipelineCacheCreateFlags :: distinct bit_set[PipelineCacheCreateFlag; Flags];
+PipelineCacheCreateFlags :: distinct bit_set[PipelineCacheCreateFlag; Flags]
 PipelineCacheCreateFlag :: enum Flags {
 	EXTERNALLY_SYNCHRONIZED_EXT = 0,
 }
 
-ColorComponentFlags :: distinct bit_set[ColorComponentFlag; Flags];
+ColorComponentFlags :: distinct bit_set[ColorComponentFlag; Flags]
 ColorComponentFlag :: enum Flags {
 	R = 0,
 	G = 1,
@@ -1810,7 +1810,7 @@ ColorComponentFlag :: enum Flags {
 	A = 3,
 }
 
-PipelineCreateFlags :: distinct bit_set[PipelineCreateFlag; Flags];
+PipelineCreateFlags :: distinct bit_set[PipelineCreateFlag; Flags]
 PipelineCreateFlag :: enum Flags {
 	DISABLE_OPTIMIZATION                               = 0,
 	ALLOW_DERIVATIVES                                  = 1,
@@ -1836,13 +1836,13 @@ PipelineCreateFlag :: enum Flags {
 	DISPATCH_BASE_KHR                                  = DISPATCH_BASE,
 }
 
-PipelineShaderStageCreateFlags :: distinct bit_set[PipelineShaderStageCreateFlag; Flags];
+PipelineShaderStageCreateFlags :: distinct bit_set[PipelineShaderStageCreateFlag; Flags]
 PipelineShaderStageCreateFlag :: enum Flags {
 	ALLOW_VARYING_SUBGROUP_SIZE_EXT = 0,
 	REQUIRE_FULL_SUBGROUPS_EXT      = 1,
 }
 
-ShaderStageFlags :: distinct bit_set[ShaderStageFlag; Flags];
+ShaderStageFlags :: distinct bit_set[ShaderStageFlag; Flags]
 ShaderStageFlag :: enum Flags {
 	VERTEX                  = 0,
 	TESSELLATION_CONTROL    = 1,
@@ -1868,27 +1868,27 @@ ShaderStageFlag :: enum Flags {
 	_MAX                    = 31, // Needed for the *_ALL bit set
 }
 
-ShaderStageFlags_ALL_GRAPHICS :: ShaderStageFlags{.VERTEX, .TESSELLATION_CONTROL, .TESSELLATION_EVALUATION, .GEOMETRY, .FRAGMENT};
-ShaderStageFlags_ALL :: ShaderStageFlags{.VERTEX, .TESSELLATION_CONTROL, .TESSELLATION_EVALUATION, .GEOMETRY, .FRAGMENT, .COMPUTE, .TASK_NV, .MESH_NV, .RAYGEN_KHR, .ANY_HIT_KHR, .CLOSEST_HIT_KHR, .MISS_KHR, .INTERSECTION_KHR, .CALLABLE_KHR, .SUBPASS_SHADING_HUAWEI, ShaderStageFlag(15), ShaderStageFlag(16), ShaderStageFlag(17), ShaderStageFlag(18), ShaderStageFlag(19), ShaderStageFlag(20), ShaderStageFlag(21), ShaderStageFlag(22), ShaderStageFlag(23), ShaderStageFlag(24), ShaderStageFlag(25), ShaderStageFlag(26), ShaderStageFlag(27), ShaderStageFlag(28), ShaderStageFlag(29), ShaderStageFlag(30)};
+ShaderStageFlags_ALL_GRAPHICS :: ShaderStageFlags{.VERTEX, .TESSELLATION_CONTROL, .TESSELLATION_EVALUATION, .GEOMETRY, .FRAGMENT}
+ShaderStageFlags_ALL :: ShaderStageFlags{.VERTEX, .TESSELLATION_CONTROL, .TESSELLATION_EVALUATION, .GEOMETRY, .FRAGMENT, .COMPUTE, .TASK_NV, .MESH_NV, .RAYGEN_KHR, .ANY_HIT_KHR, .CLOSEST_HIT_KHR, .MISS_KHR, .INTERSECTION_KHR, .CALLABLE_KHR, .SUBPASS_SHADING_HUAWEI, ShaderStageFlag(15), ShaderStageFlag(16), ShaderStageFlag(17), ShaderStageFlag(18), ShaderStageFlag(19), ShaderStageFlag(20), ShaderStageFlag(21), ShaderStageFlag(22), ShaderStageFlag(23), ShaderStageFlag(24), ShaderStageFlag(25), ShaderStageFlag(26), ShaderStageFlag(27), ShaderStageFlag(28), ShaderStageFlag(29), ShaderStageFlag(30)}
 
 
-CullModeFlags :: distinct bit_set[CullModeFlag; Flags];
+CullModeFlags :: distinct bit_set[CullModeFlag; Flags]
 CullModeFlag :: enum Flags {
 	FRONT = 0,
 	BACK  = 1,
 }
 
-CullModeFlags_NONE :: CullModeFlags{};
-CullModeFlags_FRONT_AND_BACK :: CullModeFlags{.FRONT, .BACK};
+CullModeFlags_NONE :: CullModeFlags{}
+CullModeFlags_FRONT_AND_BACK :: CullModeFlags{.FRONT, .BACK}
 
 
-SamplerCreateFlags :: distinct bit_set[SamplerCreateFlag; Flags];
+SamplerCreateFlags :: distinct bit_set[SamplerCreateFlag; Flags]
 SamplerCreateFlag :: enum Flags {
 	SUBSAMPLED_EXT                       = 0,
 	SUBSAMPLED_COARSE_RECONSTRUCTION_EXT = 1,
 }
 
-DescriptorPoolCreateFlags :: distinct bit_set[DescriptorPoolCreateFlag; Flags];
+DescriptorPoolCreateFlags :: distinct bit_set[DescriptorPoolCreateFlag; Flags]
 DescriptorPoolCreateFlag :: enum Flags {
 	FREE_DESCRIPTOR_SET   = 0,
 	UPDATE_AFTER_BIND     = 1,
@@ -1896,7 +1896,7 @@ DescriptorPoolCreateFlag :: enum Flags {
 	UPDATE_AFTER_BIND_EXT = UPDATE_AFTER_BIND,
 }
 
-DescriptorSetLayoutCreateFlags :: distinct bit_set[DescriptorSetLayoutCreateFlag; Flags];
+DescriptorSetLayoutCreateFlags :: distinct bit_set[DescriptorSetLayoutCreateFlag; Flags]
 DescriptorSetLayoutCreateFlag :: enum Flags {
 	UPDATE_AFTER_BIND_POOL     = 1,
 	PUSH_DESCRIPTOR_KHR        = 0,
@@ -1904,12 +1904,12 @@ DescriptorSetLayoutCreateFlag :: enum Flags {
 	UPDATE_AFTER_BIND_POOL_EXT = UPDATE_AFTER_BIND_POOL,
 }
 
-AttachmentDescriptionFlags :: distinct bit_set[AttachmentDescriptionFlag; Flags];
+AttachmentDescriptionFlags :: distinct bit_set[AttachmentDescriptionFlag; Flags]
 AttachmentDescriptionFlag :: enum Flags {
 	MAY_ALIAS = 0,
 }
 
-DependencyFlags :: distinct bit_set[DependencyFlag; Flags];
+DependencyFlags :: distinct bit_set[DependencyFlag; Flags]
 DependencyFlag :: enum Flags {
 	BY_REGION        = 0,
 	DEVICE_GROUP     = 2,
@@ -1918,18 +1918,18 @@ DependencyFlag :: enum Flags {
 	DEVICE_GROUP_KHR = DEVICE_GROUP,
 }
 
-FramebufferCreateFlags :: distinct bit_set[FramebufferCreateFlag; Flags];
+FramebufferCreateFlags :: distinct bit_set[FramebufferCreateFlag; Flags]
 FramebufferCreateFlag :: enum Flags {
 	IMAGELESS     = 0,
 	IMAGELESS_KHR = IMAGELESS,
 }
 
-RenderPassCreateFlags :: distinct bit_set[RenderPassCreateFlag; Flags];
+RenderPassCreateFlags :: distinct bit_set[RenderPassCreateFlag; Flags]
 RenderPassCreateFlag :: enum Flags {
 	TRANSFORM_QCOM = 1,
 }
 
-SubpassDescriptionFlags :: distinct bit_set[SubpassDescriptionFlag; Flags];
+SubpassDescriptionFlags :: distinct bit_set[SubpassDescriptionFlag; Flags]
 SubpassDescriptionFlag :: enum Flags {
 	PER_VIEW_ATTRIBUTES_NVX      = 0,
 	PER_VIEW_POSITION_X_ONLY_NVX = 1,
@@ -1937,42 +1937,42 @@ SubpassDescriptionFlag :: enum Flags {
 	SHADER_RESOLVE_QCOM          = 3,
 }
 
-CommandPoolCreateFlags :: distinct bit_set[CommandPoolCreateFlag; Flags];
+CommandPoolCreateFlags :: distinct bit_set[CommandPoolCreateFlag; Flags]
 CommandPoolCreateFlag :: enum Flags {
 	TRANSIENT            = 0,
 	RESET_COMMAND_BUFFER = 1,
 	PROTECTED            = 2,
 }
 
-CommandPoolResetFlags :: distinct bit_set[CommandPoolResetFlag; Flags];
+CommandPoolResetFlags :: distinct bit_set[CommandPoolResetFlag; Flags]
 CommandPoolResetFlag :: enum Flags {
 	RELEASE_RESOURCES = 0,
 }
 
-CommandBufferUsageFlags :: distinct bit_set[CommandBufferUsageFlag; Flags];
+CommandBufferUsageFlags :: distinct bit_set[CommandBufferUsageFlag; Flags]
 CommandBufferUsageFlag :: enum Flags {
 	ONE_TIME_SUBMIT      = 0,
 	RENDER_PASS_CONTINUE = 1,
 	SIMULTANEOUS_USE     = 2,
 }
 
-QueryControlFlags :: distinct bit_set[QueryControlFlag; Flags];
+QueryControlFlags :: distinct bit_set[QueryControlFlag; Flags]
 QueryControlFlag :: enum Flags {
 	PRECISE = 0,
 }
 
-CommandBufferResetFlags :: distinct bit_set[CommandBufferResetFlag; Flags];
+CommandBufferResetFlags :: distinct bit_set[CommandBufferResetFlag; Flags]
 CommandBufferResetFlag :: enum Flags {
 	RELEASE_RESOURCES = 0,
 }
 
-StencilFaceFlags :: distinct bit_set[StencilFaceFlag; Flags];
+StencilFaceFlags :: distinct bit_set[StencilFaceFlag; Flags]
 StencilFaceFlag :: enum Flags {
 	FRONT                  = 0,
 	BACK                   = 1,
 }
 
-StencilFaceFlags_FRONT_AND_BACK :: StencilFaceFlags{.FRONT, .BACK};
+StencilFaceFlags_FRONT_AND_BACK :: StencilFaceFlags{.FRONT, .BACK}
 
 
 PointClippingBehavior :: enum c.int {
@@ -2022,7 +2022,7 @@ DescriptorUpdateTemplateType :: enum c.int {
 	DESCRIPTOR_SET_KHR   = DESCRIPTOR_SET,
 }
 
-SubgroupFeatureFlags :: distinct bit_set[SubgroupFeatureFlag; Flags];
+SubgroupFeatureFlags :: distinct bit_set[SubgroupFeatureFlag; Flags]
 SubgroupFeatureFlag :: enum Flags {
 	BASIC            = 0,
 	VOTE             = 1,
@@ -2035,7 +2035,7 @@ SubgroupFeatureFlag :: enum Flags {
 	PARTITIONED_NV   = 8,
 }
 
-PeerMemoryFeatureFlags :: distinct bit_set[PeerMemoryFeatureFlag; Flags];
+PeerMemoryFeatureFlags :: distinct bit_set[PeerMemoryFeatureFlag; Flags]
 PeerMemoryFeatureFlag :: enum Flags {
 	COPY_SRC        = 0,
 	COPY_DST        = 1,
@@ -2047,7 +2047,7 @@ PeerMemoryFeatureFlag :: enum Flags {
 	GENERIC_DST_KHR = GENERIC_DST,
 }
 
-MemoryAllocateFlags :: distinct bit_set[MemoryAllocateFlag; Flags];
+MemoryAllocateFlags :: distinct bit_set[MemoryAllocateFlag; Flags]
 MemoryAllocateFlag :: enum Flags {
 	DEVICE_MASK                       = 0,
 	DEVICE_ADDRESS                    = 1,
@@ -2057,7 +2057,7 @@ MemoryAllocateFlag :: enum Flags {
 	DEVICE_ADDRESS_CAPTURE_REPLAY_KHR = DEVICE_ADDRESS_CAPTURE_REPLAY,
 }
 
-ExternalMemoryHandleTypeFlags :: distinct bit_set[ExternalMemoryHandleTypeFlag; Flags];
+ExternalMemoryHandleTypeFlags :: distinct bit_set[ExternalMemoryHandleTypeFlag; Flags]
 ExternalMemoryHandleTypeFlag :: enum Flags {
 	OPAQUE_FD                       = 0,
 	OPAQUE_WIN32                    = 1,
@@ -2081,7 +2081,7 @@ ExternalMemoryHandleTypeFlag :: enum Flags {
 	D3D12_RESOURCE_KHR              = D3D12_RESOURCE,
 }
 
-ExternalMemoryFeatureFlags :: distinct bit_set[ExternalMemoryFeatureFlag; Flags];
+ExternalMemoryFeatureFlags :: distinct bit_set[ExternalMemoryFeatureFlag; Flags]
 ExternalMemoryFeatureFlag :: enum Flags {
 	DEDICATED_ONLY     = 0,
 	EXPORTABLE         = 1,
@@ -2091,7 +2091,7 @@ ExternalMemoryFeatureFlag :: enum Flags {
 	IMPORTABLE_KHR     = IMPORTABLE,
 }
 
-ExternalFenceHandleTypeFlags :: distinct bit_set[ExternalFenceHandleTypeFlag; Flags];
+ExternalFenceHandleTypeFlags :: distinct bit_set[ExternalFenceHandleTypeFlag; Flags]
 ExternalFenceHandleTypeFlag :: enum Flags {
 	OPAQUE_FD            = 0,
 	OPAQUE_WIN32         = 1,
@@ -2103,7 +2103,7 @@ ExternalFenceHandleTypeFlag :: enum Flags {
 	SYNC_FD_KHR          = SYNC_FD,
 }
 
-ExternalFenceFeatureFlags :: distinct bit_set[ExternalFenceFeatureFlag; Flags];
+ExternalFenceFeatureFlags :: distinct bit_set[ExternalFenceFeatureFlag; Flags]
 ExternalFenceFeatureFlag :: enum Flags {
 	EXPORTABLE     = 0,
 	IMPORTABLE     = 1,
@@ -2111,19 +2111,19 @@ ExternalFenceFeatureFlag :: enum Flags {
 	IMPORTABLE_KHR = IMPORTABLE,
 }
 
-FenceImportFlags :: distinct bit_set[FenceImportFlag; Flags];
+FenceImportFlags :: distinct bit_set[FenceImportFlag; Flags]
 FenceImportFlag :: enum Flags {
 	TEMPORARY     = 0,
 	TEMPORARY_KHR = TEMPORARY,
 }
 
-SemaphoreImportFlags :: distinct bit_set[SemaphoreImportFlag; Flags];
+SemaphoreImportFlags :: distinct bit_set[SemaphoreImportFlag; Flags]
 SemaphoreImportFlag :: enum Flags {
 	TEMPORARY     = 0,
 	TEMPORARY_KHR = TEMPORARY,
 }
 
-ExternalSemaphoreHandleTypeFlags :: distinct bit_set[ExternalSemaphoreHandleTypeFlag; Flags];
+ExternalSemaphoreHandleTypeFlags :: distinct bit_set[ExternalSemaphoreHandleTypeFlag; Flags]
 ExternalSemaphoreHandleTypeFlag :: enum Flags {
 	OPAQUE_FD            = 0,
 	OPAQUE_WIN32         = 1,
@@ -2139,7 +2139,7 @@ ExternalSemaphoreHandleTypeFlag :: enum Flags {
 	SYNC_FD_KHR          = SYNC_FD,
 }
 
-ExternalSemaphoreFeatureFlags :: distinct bit_set[ExternalSemaphoreFeatureFlag; Flags];
+ExternalSemaphoreFeatureFlags :: distinct bit_set[ExternalSemaphoreFeatureFlag; Flags]
 ExternalSemaphoreFeatureFlag :: enum Flags {
 	EXPORTABLE     = 0,
 	IMPORTABLE     = 1,
@@ -2203,7 +2203,7 @@ SemaphoreType :: enum c.int {
 	TIMELINE_KHR = TIMELINE,
 }
 
-ResolveModeFlags :: distinct bit_set[ResolveModeFlag; Flags];
+ResolveModeFlags :: distinct bit_set[ResolveModeFlag; Flags]
 ResolveModeFlag :: enum Flags {
 	SAMPLE_ZERO     = 0,
 	AVERAGE         = 1,
@@ -2215,10 +2215,10 @@ ResolveModeFlag :: enum Flags {
 	MAX_KHR         = MAX,
 }
 
-ResolveModeFlags_NONE :: ResolveModeFlags{};
+ResolveModeFlags_NONE :: ResolveModeFlags{}
 
 
-DescriptorBindingFlags :: distinct bit_set[DescriptorBindingFlag; Flags];
+DescriptorBindingFlags :: distinct bit_set[DescriptorBindingFlag; Flags]
 DescriptorBindingFlag :: enum Flags {
 	UPDATE_AFTER_BIND               = 0,
 	UPDATE_UNUSED_WHILE_PENDING     = 1,
@@ -2230,7 +2230,7 @@ DescriptorBindingFlag :: enum Flags {
 	VARIABLE_DESCRIPTOR_COUNT_EXT   = VARIABLE_DESCRIPTOR_COUNT,
 }
 
-SemaphoreWaitFlags :: distinct bit_set[SemaphoreWaitFlag; Flags];
+SemaphoreWaitFlags :: distinct bit_set[SemaphoreWaitFlag; Flags]
 SemaphoreWaitFlag :: enum Flags {
 	ANY     = 0,
 	ANY_KHR = ANY,
@@ -2266,7 +2266,7 @@ ColorSpaceKHR :: enum c.int {
 	DCI_P3_LINEAR_EXT           = DISPLAY_P3_LINEAR_EXT,
 }
 
-SurfaceTransformFlagsKHR :: distinct bit_set[SurfaceTransformFlagKHR; Flags];
+SurfaceTransformFlagsKHR :: distinct bit_set[SurfaceTransformFlagKHR; Flags]
 SurfaceTransformFlagKHR :: enum Flags {
 	IDENTITY                     = 0,
 	ROTATE_90                    = 1,
@@ -2279,7 +2279,7 @@ SurfaceTransformFlagKHR :: enum Flags {
 	INHERIT                      = 8,
 }
 
-CompositeAlphaFlagsKHR :: distinct bit_set[CompositeAlphaFlagKHR; Flags];
+CompositeAlphaFlagsKHR :: distinct bit_set[CompositeAlphaFlagKHR; Flags]
 CompositeAlphaFlagKHR :: enum Flags {
 	OPAQUE          = 0,
 	PRE_MULTIPLIED  = 1,
@@ -2287,14 +2287,14 @@ CompositeAlphaFlagKHR :: enum Flags {
 	INHERIT         = 3,
 }
 
-SwapchainCreateFlagsKHR :: distinct bit_set[SwapchainCreateFlagKHR; Flags];
+SwapchainCreateFlagsKHR :: distinct bit_set[SwapchainCreateFlagKHR; Flags]
 SwapchainCreateFlagKHR :: enum Flags {
 	SPLIT_INSTANCE_BIND_REGIONS = 0,
 	PROTECTED                   = 1,
 	MUTABLE_FORMAT              = 2,
 }
 
-DeviceGroupPresentModeFlagsKHR :: distinct bit_set[DeviceGroupPresentModeFlagKHR; Flags];
+DeviceGroupPresentModeFlagsKHR :: distinct bit_set[DeviceGroupPresentModeFlagKHR; Flags]
 DeviceGroupPresentModeFlagKHR :: enum Flags {
 	LOCAL              = 0,
 	REMOTE             = 1,
@@ -2302,7 +2302,7 @@ DeviceGroupPresentModeFlagKHR :: enum Flags {
 	LOCAL_MULTI_DEVICE = 3,
 }
 
-DisplayPlaneAlphaFlagsKHR :: distinct bit_set[DisplayPlaneAlphaFlagKHR; Flags];
+DisplayPlaneAlphaFlagsKHR :: distinct bit_set[DisplayPlaneAlphaFlagKHR; Flags]
 DisplayPlaneAlphaFlagKHR :: enum Flags {
 	OPAQUE                  = 0,
 	GLOBAL                  = 1,
@@ -2342,13 +2342,13 @@ PerformanceCounterStorageKHR :: enum c.int {
 	FLOAT64 = 5,
 }
 
-PerformanceCounterDescriptionFlagsKHR :: distinct bit_set[PerformanceCounterDescriptionFlagKHR; Flags];
+PerformanceCounterDescriptionFlagsKHR :: distinct bit_set[PerformanceCounterDescriptionFlagKHR; Flags]
 PerformanceCounterDescriptionFlagKHR :: enum Flags {
 	PERFORMANCE_IMPACTING = 0,
 	CONCURRENTLY_IMPACTED = 1,
 }
 
-AcquireProfilingLockFlagsKHR :: distinct bit_set[AcquireProfilingLockFlagKHR; Flags];
+AcquireProfilingLockFlagsKHR :: distinct bit_set[AcquireProfilingLockFlagKHR; Flags]
 AcquireProfilingLockFlagKHR :: enum Flags {
 }
 
@@ -2367,7 +2367,7 @@ PipelineExecutableStatisticFormatKHR :: enum c.int {
 	FLOAT64 = 3,
 }
 
-SubmitFlagsKHR :: distinct bit_set[SubmitFlagKHR; Flags];
+SubmitFlagsKHR :: distinct bit_set[SubmitFlagKHR; Flags]
 SubmitFlagKHR :: enum Flags {
 	PROTECTED = 0,
 }
@@ -2417,7 +2417,7 @@ DebugReportObjectTypeEXT :: enum c.int {
 	SAMPLER_YCBCR_CONVERSION_KHR   = SAMPLER_YCBCR_CONVERSION,
 }
 
-DebugReportFlagsEXT :: distinct bit_set[DebugReportFlagEXT; Flags];
+DebugReportFlagsEXT :: distinct bit_set[DebugReportFlagEXT; Flags]
 DebugReportFlagEXT :: enum Flags {
 	INFORMATION         = 0,
 	WARNING             = 1,
@@ -2437,7 +2437,7 @@ ShaderInfoTypeAMD :: enum c.int {
 	DISASSEMBLY = 2,
 }
 
-ExternalMemoryHandleTypeFlagsNV :: distinct bit_set[ExternalMemoryHandleTypeFlagNV; Flags];
+ExternalMemoryHandleTypeFlagsNV :: distinct bit_set[ExternalMemoryHandleTypeFlagNV; Flags]
 ExternalMemoryHandleTypeFlagNV :: enum Flags {
 	OPAQUE_WIN32     = 0,
 	OPAQUE_WIN32_KMT = 1,
@@ -2445,7 +2445,7 @@ ExternalMemoryHandleTypeFlagNV :: enum Flags {
 	D3D11_IMAGE_KMT  = 3,
 }
 
-ExternalMemoryFeatureFlagsNV :: distinct bit_set[ExternalMemoryFeatureFlagNV; Flags];
+ExternalMemoryFeatureFlagsNV :: distinct bit_set[ExternalMemoryFeatureFlagNV; Flags]
 ExternalMemoryFeatureFlagNV :: enum Flags {
 	DEDICATED_ONLY = 0,
 	EXPORTABLE     = 1,
@@ -2457,12 +2457,12 @@ ValidationCheckEXT :: enum c.int {
 	SHADERS = 1,
 }
 
-ConditionalRenderingFlagsEXT :: distinct bit_set[ConditionalRenderingFlagEXT; Flags];
+ConditionalRenderingFlagsEXT :: distinct bit_set[ConditionalRenderingFlagEXT; Flags]
 ConditionalRenderingFlagEXT :: enum Flags {
 	INVERTED = 0,
 }
 
-SurfaceCounterFlagsEXT :: distinct bit_set[SurfaceCounterFlagEXT; Flags];
+SurfaceCounterFlagsEXT :: distinct bit_set[SurfaceCounterFlagEXT; Flags]
 SurfaceCounterFlagEXT :: enum Flags {
 	VBLANK = 0,
 }
@@ -2503,7 +2503,7 @@ ConservativeRasterizationModeEXT :: enum c.int {
 	UNDERESTIMATE = 2,
 }
 
-DebugUtilsMessageSeverityFlagsEXT :: distinct bit_set[DebugUtilsMessageSeverityFlagEXT; Flags];
+DebugUtilsMessageSeverityFlagsEXT :: distinct bit_set[DebugUtilsMessageSeverityFlagEXT; Flags]
 DebugUtilsMessageSeverityFlagEXT :: enum Flags {
 	VERBOSE = 0,
 	INFO    = 4,
@@ -2511,7 +2511,7 @@ DebugUtilsMessageSeverityFlagEXT :: enum Flags {
 	ERROR   = 12,
 }
 
-DebugUtilsMessageTypeFlagsEXT :: distinct bit_set[DebugUtilsMessageTypeFlagEXT; Flags];
+DebugUtilsMessageTypeFlagsEXT :: distinct bit_set[DebugUtilsMessageTypeFlagEXT; Flags]
 DebugUtilsMessageTypeFlagEXT :: enum Flags {
 	GENERAL     = 0,
 	VALIDATION  = 1,
@@ -2597,7 +2597,7 @@ AccelerationStructureMemoryRequirementsTypeNV :: enum c.int {
 	UPDATE_SCRATCH = 2,
 }
 
-GeometryFlagsKHR :: distinct bit_set[GeometryFlagKHR; Flags];
+GeometryFlagsKHR :: distinct bit_set[GeometryFlagKHR; Flags]
 GeometryFlagKHR :: enum Flags {
 	OPAQUE                             = 0,
 	NO_DUPLICATE_ANY_HIT_INVOCATION    = 1,
@@ -2605,7 +2605,7 @@ GeometryFlagKHR :: enum Flags {
 	NO_DUPLICATE_ANY_HIT_INVOCATION_NV = NO_DUPLICATE_ANY_HIT_INVOCATION,
 }
 
-GeometryInstanceFlagsKHR :: distinct bit_set[GeometryInstanceFlagKHR; Flags];
+GeometryInstanceFlagsKHR :: distinct bit_set[GeometryInstanceFlagKHR; Flags]
 GeometryInstanceFlagKHR :: enum Flags {
 	TRIANGLE_FACING_CULL_DISABLE       = 0,
 	TRIANGLE_FLIP_FACING               = 1,
@@ -2618,7 +2618,7 @@ GeometryInstanceFlagKHR :: enum Flags {
 	FORCE_NO_OPAQUE_NV                 = FORCE_NO_OPAQUE,
 }
 
-BuildAccelerationStructureFlagsKHR :: distinct bit_set[BuildAccelerationStructureFlagKHR; Flags];
+BuildAccelerationStructureFlagsKHR :: distinct bit_set[BuildAccelerationStructureFlagKHR; Flags]
 BuildAccelerationStructureFlagKHR :: enum Flags {
 	ALLOW_UPDATE         = 0,
 	ALLOW_COMPACTION     = 1,
@@ -2640,7 +2640,7 @@ QueueGlobalPriorityEXT :: enum c.int {
 	REALTIME = 1024,
 }
 
-PipelineCompilerControlFlagsAMD :: distinct bit_set[PipelineCompilerControlFlagAMD; Flags];
+PipelineCompilerControlFlagsAMD :: distinct bit_set[PipelineCompilerControlFlagAMD; Flags]
 PipelineCompilerControlFlagAMD :: enum Flags {
 }
 
@@ -2657,7 +2657,7 @@ MemoryOverallocationBehaviorAMD :: enum c.int {
 	DISALLOWED = 2,
 }
 
-PipelineCreationFeedbackFlagsEXT :: distinct bit_set[PipelineCreationFeedbackFlagEXT; Flags];
+PipelineCreationFeedbackFlagsEXT :: distinct bit_set[PipelineCreationFeedbackFlagEXT; Flags]
 PipelineCreationFeedbackFlagEXT :: enum Flags {
 	VALID                          = 0,
 	APPLICATION_PIPELINE_CACHE_HIT = 1,
@@ -2690,11 +2690,11 @@ PerformanceValueTypeINTEL :: enum c.int {
 	PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
 }
 
-ShaderCorePropertiesFlagsAMD :: distinct bit_set[ShaderCorePropertiesFlagAMD; Flags];
+ShaderCorePropertiesFlagsAMD :: distinct bit_set[ShaderCorePropertiesFlagAMD; Flags]
 ShaderCorePropertiesFlagAMD :: enum Flags {
 }
 
-ToolPurposeFlagsEXT :: distinct bit_set[ToolPurposeFlagEXT; Flags];
+ToolPurposeFlagsEXT :: distinct bit_set[ToolPurposeFlagEXT; Flags]
 ToolPurposeFlagEXT :: enum Flags {
 	VALIDATION          = 0,
 	PROFILING           = 1,
@@ -2773,12 +2773,12 @@ IndirectCommandsTokenTypeNV :: enum c.int {
 	DRAW_TASKS    = 7,
 }
 
-IndirectStateFlagsNV :: distinct bit_set[IndirectStateFlagNV; Flags];
+IndirectStateFlagsNV :: distinct bit_set[IndirectStateFlagNV; Flags]
 IndirectStateFlagNV :: enum Flags {
 	FLAG_FRONTFACE = 0,
 }
 
-IndirectCommandsLayoutUsageFlagsNV :: distinct bit_set[IndirectCommandsLayoutUsageFlagNV; Flags];
+IndirectCommandsLayoutUsageFlagsNV :: distinct bit_set[IndirectCommandsLayoutUsageFlagNV; Flags]
 IndirectCommandsLayoutUsageFlagNV :: enum Flags {
 	EXPLICIT_PREPROCESS = 0,
 	INDEXED_SEQUENCES   = 1,
@@ -2793,11 +2793,11 @@ DeviceMemoryReportEventTypeEXT :: enum c.int {
 	ALLOCATION_FAILED = 4,
 }
 
-PrivateDataSlotCreateFlagsEXT :: distinct bit_set[PrivateDataSlotCreateFlagEXT; Flags];
+PrivateDataSlotCreateFlagsEXT :: distinct bit_set[PrivateDataSlotCreateFlagEXT; Flags]
 PrivateDataSlotCreateFlagEXT :: enum Flags {
 }
 
-DeviceDiagnosticsConfigFlagsNV :: distinct bit_set[DeviceDiagnosticsConfigFlagNV; Flags];
+DeviceDiagnosticsConfigFlagsNV :: distinct bit_set[DeviceDiagnosticsConfigFlagNV; Flags]
 DeviceDiagnosticsConfigFlagNV :: enum Flags {
 	ENABLE_SHADER_DEBUG_INFO     = 0,
 	ENABLE_RESOURCE_TRACKING     = 1,
@@ -2846,7 +2846,7 @@ AccelerationStructureCompatibilityKHR :: enum c.int {
 	INCOMPATIBLE = 1,
 }
 
-AccelerationStructureCreateFlagsKHR :: distinct bit_set[AccelerationStructureCreateFlagKHR; Flags];
+AccelerationStructureCreateFlagsKHR :: distinct bit_set[AccelerationStructureCreateFlagKHR; Flags]
 AccelerationStructureCreateFlagKHR :: enum Flags {
 	DEVICE_ADDRESS_CAPTURE_REPLAY = 0,
 	MOTION_NV                     = 2,
@@ -2866,85 +2866,85 @@ FullScreenExclusiveEXT :: enum c.int {
 	APPLICATION_CONTROLLED = 3,
 }
 
-PipelineCoverageReductionStateCreateFlagsNV          :: distinct bit_set[PipelineCoverageReductionStateCreateFlagNV; Flags];
-PipelineCoverageReductionStateCreateFlagNV           :: enum u32 {};
-DisplayModeCreateFlagsKHR                            :: distinct bit_set[DisplayModeCreateFlagKHR; Flags];
-DisplayModeCreateFlagKHR                             :: enum u32 {};
-DeviceCreateFlags                                    :: distinct bit_set[DeviceCreateFlag; Flags];
-DeviceCreateFlag                                     :: enum u32 {};
-PipelineInputAssemblyStateCreateFlags                :: distinct bit_set[PipelineInputAssemblyStateCreateFlag; Flags];
-PipelineInputAssemblyStateCreateFlag                 :: enum u32 {};
-PipelineVertexInputStateCreateFlags                  :: distinct bit_set[PipelineVertexInputStateCreateFlag; Flags];
-PipelineVertexInputStateCreateFlag                   :: enum u32 {};
-PipelineRasterizationStateCreateFlags                :: distinct bit_set[PipelineRasterizationStateCreateFlag; Flags];
-PipelineRasterizationStateCreateFlag                 :: enum u32 {};
-PipelineLayoutCreateFlags                            :: distinct bit_set[PipelineLayoutCreateFlag; Flags];
-PipelineLayoutCreateFlag                             :: enum u32 {};
-PipelineCoverageModulationStateCreateFlagsNV         :: distinct bit_set[PipelineCoverageModulationStateCreateFlagNV; Flags];
-PipelineCoverageModulationStateCreateFlagNV          :: enum u32 {};
-AccelerationStructureMotionInstanceFlagsNV           :: distinct bit_set[AccelerationStructureMotionInstanceFlagNV; Flags];
-AccelerationStructureMotionInstanceFlagNV            :: enum u32 {};
-DeviceMemoryReportFlagsEXT                           :: distinct bit_set[DeviceMemoryReportFlagEXT; Flags];
-DeviceMemoryReportFlagEXT                            :: enum u32 {};
-PipelineMultisampleStateCreateFlags                  :: distinct bit_set[PipelineMultisampleStateCreateFlag; Flags];
-PipelineMultisampleStateCreateFlag                   :: enum u32 {};
-QueryPoolCreateFlags                                 :: distinct bit_set[QueryPoolCreateFlag; Flags];
-QueryPoolCreateFlag                                  :: enum u32 {};
-DebugUtilsMessengerCreateFlagsEXT                    :: distinct bit_set[DebugUtilsMessengerCreateFlagEXT; Flags];
-DebugUtilsMessengerCreateFlagEXT                     :: enum u32 {};
-SemaphoreCreateFlags                                 :: distinct bit_set[SemaphoreCreateFlag; Flags];
-SemaphoreCreateFlag                                  :: enum u32 {};
-BufferViewCreateFlags                                :: distinct bit_set[BufferViewCreateFlag; Flags];
-BufferViewCreateFlag                                 :: enum u32 {};
-PipelineDepthStencilStateCreateFlags                 :: distinct bit_set[PipelineDepthStencilStateCreateFlag; Flags];
-PipelineDepthStencilStateCreateFlag                  :: enum u32 {};
-PipelineViewportStateCreateFlags                     :: distinct bit_set[PipelineViewportStateCreateFlag; Flags];
-PipelineViewportStateCreateFlag                      :: enum u32 {};
-PipelineDynamicStateCreateFlags                      :: distinct bit_set[PipelineDynamicStateCreateFlag; Flags];
-PipelineDynamicStateCreateFlag                       :: enum u32 {};
-HeadlessSurfaceCreateFlagsEXT                        :: distinct bit_set[HeadlessSurfaceCreateFlagEXT; Flags];
-HeadlessSurfaceCreateFlagEXT                         :: enum u32 {};
-CommandPoolTrimFlags                                 :: distinct bit_set[CommandPoolTrimFlag; Flags];
-CommandPoolTrimFlag                                  :: enum u32 {};
-DescriptorUpdateTemplateCreateFlags                  :: distinct bit_set[DescriptorUpdateTemplateCreateFlag; Flags];
-DescriptorUpdateTemplateCreateFlag                   :: enum u32 {};
-PipelineColorBlendStateCreateFlags                   :: distinct bit_set[PipelineColorBlendStateCreateFlag; Flags];
-PipelineColorBlendStateCreateFlag                    :: enum u32 {};
-PipelineViewportSwizzleStateCreateFlagsNV            :: distinct bit_set[PipelineViewportSwizzleStateCreateFlagNV; Flags];
-PipelineViewportSwizzleStateCreateFlagNV             :: enum u32 {};
-MemoryMapFlags                                       :: distinct bit_set[MemoryMapFlag; Flags];
-MemoryMapFlag                                        :: enum u32 {};
-PipelineDiscardRectangleStateCreateFlagsEXT          :: distinct bit_set[PipelineDiscardRectangleStateCreateFlagEXT; Flags];
-PipelineDiscardRectangleStateCreateFlagEXT           :: enum u32 {};
-InstanceCreateFlags                                  :: distinct bit_set[InstanceCreateFlag; Flags];
-InstanceCreateFlag                                   :: enum u32 {};
-PipelineRasterizationConservativeStateCreateFlagsEXT :: distinct bit_set[PipelineRasterizationConservativeStateCreateFlagEXT; Flags];
-PipelineRasterizationConservativeStateCreateFlagEXT  :: enum u32 {};
-PipelineRasterizationDepthClipStateCreateFlagsEXT    :: distinct bit_set[PipelineRasterizationDepthClipStateCreateFlagEXT; Flags];
-PipelineRasterizationDepthClipStateCreateFlagEXT     :: enum u32 {};
-PipelineRasterizationStateStreamCreateFlagsEXT       :: distinct bit_set[PipelineRasterizationStateStreamCreateFlagEXT; Flags];
-PipelineRasterizationStateStreamCreateFlagEXT        :: enum u32 {};
-DebugUtilsMessengerCallbackDataFlagsEXT              :: distinct bit_set[DebugUtilsMessengerCallbackDataFlagEXT; Flags];
-DebugUtilsMessengerCallbackDataFlagEXT               :: enum u32 {};
-DisplaySurfaceCreateFlagsKHR                         :: distinct bit_set[DisplaySurfaceCreateFlagKHR; Flags];
-DisplaySurfaceCreateFlagKHR                          :: enum u32 {};
-MetalSurfaceCreateFlagsEXT                           :: distinct bit_set[MetalSurfaceCreateFlagEXT; Flags];
-MetalSurfaceCreateFlagEXT                            :: enum u32 {};
-IOSSurfaceCreateFlagsMVK                             :: distinct bit_set[IOSSurfaceCreateFlagMVK; Flags];
-IOSSurfaceCreateFlagMVK                              :: enum u32 {};
-MacOSSurfaceCreateFlagsMVK                           :: distinct bit_set[MacOSSurfaceCreateFlagMVK; Flags];
-MacOSSurfaceCreateFlagMVK                            :: enum u32 {};
-PipelineCoverageToColorStateCreateFlagsNV            :: distinct bit_set[PipelineCoverageToColorStateCreateFlagNV; Flags];
-PipelineCoverageToColorStateCreateFlagNV             :: enum u32 {};
-ValidationCacheCreateFlagsEXT                        :: distinct bit_set[ValidationCacheCreateFlagEXT; Flags];
-ValidationCacheCreateFlagEXT                         :: enum u32 {};
-Win32SurfaceCreateFlagsKHR                           :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags];
-Win32SurfaceCreateFlagKHR                            :: enum u32 {};
-PipelineTessellationStateCreateFlags                 :: distinct bit_set[PipelineTessellationStateCreateFlag; Flags];
-PipelineTessellationStateCreateFlag                  :: enum u32 {};
-DescriptorPoolResetFlags                             :: distinct bit_set[DescriptorPoolResetFlag; Flags];
-DescriptorPoolResetFlag                              :: enum u32 {};
-AccelerationStructureMotionInfoFlagsNV               :: distinct bit_set[AccelerationStructureMotionInfoFlagNV; Flags];
-AccelerationStructureMotionInfoFlagNV                :: enum u32 {};
+PipelineCoverageReductionStateCreateFlagsNV          :: distinct bit_set[PipelineCoverageReductionStateCreateFlagNV; Flags]
+PipelineCoverageReductionStateCreateFlagNV           :: enum u32 {}
+DisplayModeCreateFlagsKHR                            :: distinct bit_set[DisplayModeCreateFlagKHR; Flags]
+DisplayModeCreateFlagKHR                             :: enum u32 {}
+DeviceCreateFlags                                    :: distinct bit_set[DeviceCreateFlag; Flags]
+DeviceCreateFlag                                     :: enum u32 {}
+PipelineInputAssemblyStateCreateFlags                :: distinct bit_set[PipelineInputAssemblyStateCreateFlag; Flags]
+PipelineInputAssemblyStateCreateFlag                 :: enum u32 {}
+PipelineVertexInputStateCreateFlags                  :: distinct bit_set[PipelineVertexInputStateCreateFlag; Flags]
+PipelineVertexInputStateCreateFlag                   :: enum u32 {}
+PipelineRasterizationStateCreateFlags                :: distinct bit_set[PipelineRasterizationStateCreateFlag; Flags]
+PipelineRasterizationStateCreateFlag                 :: enum u32 {}
+PipelineLayoutCreateFlags                            :: distinct bit_set[PipelineLayoutCreateFlag; Flags]
+PipelineLayoutCreateFlag                             :: enum u32 {}
+PipelineCoverageModulationStateCreateFlagsNV         :: distinct bit_set[PipelineCoverageModulationStateCreateFlagNV; Flags]
+PipelineCoverageModulationStateCreateFlagNV          :: enum u32 {}
+AccelerationStructureMotionInstanceFlagsNV           :: distinct bit_set[AccelerationStructureMotionInstanceFlagNV; Flags]
+AccelerationStructureMotionInstanceFlagNV            :: enum u32 {}
+DeviceMemoryReportFlagsEXT                           :: distinct bit_set[DeviceMemoryReportFlagEXT; Flags]
+DeviceMemoryReportFlagEXT                            :: enum u32 {}
+PipelineMultisampleStateCreateFlags                  :: distinct bit_set[PipelineMultisampleStateCreateFlag; Flags]
+PipelineMultisampleStateCreateFlag                   :: enum u32 {}
+QueryPoolCreateFlags                                 :: distinct bit_set[QueryPoolCreateFlag; Flags]
+QueryPoolCreateFlag                                  :: enum u32 {}
+DebugUtilsMessengerCreateFlagsEXT                    :: distinct bit_set[DebugUtilsMessengerCreateFlagEXT; Flags]
+DebugUtilsMessengerCreateFlagEXT                     :: enum u32 {}
+SemaphoreCreateFlags                                 :: distinct bit_set[SemaphoreCreateFlag; Flags]
+SemaphoreCreateFlag                                  :: enum u32 {}
+BufferViewCreateFlags                                :: distinct bit_set[BufferViewCreateFlag; Flags]
+BufferViewCreateFlag                                 :: enum u32 {}
+PipelineDepthStencilStateCreateFlags                 :: distinct bit_set[PipelineDepthStencilStateCreateFlag; Flags]
+PipelineDepthStencilStateCreateFlag                  :: enum u32 {}
+PipelineViewportStateCreateFlags                     :: distinct bit_set[PipelineViewportStateCreateFlag; Flags]
+PipelineViewportStateCreateFlag                      :: enum u32 {}
+PipelineDynamicStateCreateFlags                      :: distinct bit_set[PipelineDynamicStateCreateFlag; Flags]
+PipelineDynamicStateCreateFlag                       :: enum u32 {}
+HeadlessSurfaceCreateFlagsEXT                        :: distinct bit_set[HeadlessSurfaceCreateFlagEXT; Flags]
+HeadlessSurfaceCreateFlagEXT                         :: enum u32 {}
+CommandPoolTrimFlags                                 :: distinct bit_set[CommandPoolTrimFlag; Flags]
+CommandPoolTrimFlag                                  :: enum u32 {}
+DescriptorUpdateTemplateCreateFlags                  :: distinct bit_set[DescriptorUpdateTemplateCreateFlag; Flags]
+DescriptorUpdateTemplateCreateFlag                   :: enum u32 {}
+PipelineColorBlendStateCreateFlags                   :: distinct bit_set[PipelineColorBlendStateCreateFlag; Flags]
+PipelineColorBlendStateCreateFlag                    :: enum u32 {}
+PipelineViewportSwizzleStateCreateFlagsNV            :: distinct bit_set[PipelineViewportSwizzleStateCreateFlagNV; Flags]
+PipelineViewportSwizzleStateCreateFlagNV             :: enum u32 {}
+MemoryMapFlags                                       :: distinct bit_set[MemoryMapFlag; Flags]
+MemoryMapFlag                                        :: enum u32 {}
+PipelineDiscardRectangleStateCreateFlagsEXT          :: distinct bit_set[PipelineDiscardRectangleStateCreateFlagEXT; Flags]
+PipelineDiscardRectangleStateCreateFlagEXT           :: enum u32 {}
+InstanceCreateFlags                                  :: distinct bit_set[InstanceCreateFlag; Flags]
+InstanceCreateFlag                                   :: enum u32 {}
+PipelineRasterizationConservativeStateCreateFlagsEXT :: distinct bit_set[PipelineRasterizationConservativeStateCreateFlagEXT; Flags]
+PipelineRasterizationConservativeStateCreateFlagEXT  :: enum u32 {}
+PipelineRasterizationDepthClipStateCreateFlagsEXT    :: distinct bit_set[PipelineRasterizationDepthClipStateCreateFlagEXT; Flags]
+PipelineRasterizationDepthClipStateCreateFlagEXT     :: enum u32 {}
+PipelineRasterizationStateStreamCreateFlagsEXT       :: distinct bit_set[PipelineRasterizationStateStreamCreateFlagEXT; Flags]
+PipelineRasterizationStateStreamCreateFlagEXT        :: enum u32 {}
+DebugUtilsMessengerCallbackDataFlagsEXT              :: distinct bit_set[DebugUtilsMessengerCallbackDataFlagEXT; Flags]
+DebugUtilsMessengerCallbackDataFlagEXT               :: enum u32 {}
+DisplaySurfaceCreateFlagsKHR                         :: distinct bit_set[DisplaySurfaceCreateFlagKHR; Flags]
+DisplaySurfaceCreateFlagKHR                          :: enum u32 {}
+MetalSurfaceCreateFlagsEXT                           :: distinct bit_set[MetalSurfaceCreateFlagEXT; Flags]
+MetalSurfaceCreateFlagEXT                            :: enum u32 {}
+IOSSurfaceCreateFlagsMVK                             :: distinct bit_set[IOSSurfaceCreateFlagMVK; Flags]
+IOSSurfaceCreateFlagMVK                              :: enum u32 {}
+MacOSSurfaceCreateFlagsMVK                           :: distinct bit_set[MacOSSurfaceCreateFlagMVK; Flags]
+MacOSSurfaceCreateFlagMVK                            :: enum u32 {}
+PipelineCoverageToColorStateCreateFlagsNV            :: distinct bit_set[PipelineCoverageToColorStateCreateFlagNV; Flags]
+PipelineCoverageToColorStateCreateFlagNV             :: enum u32 {}
+ValidationCacheCreateFlagsEXT                        :: distinct bit_set[ValidationCacheCreateFlagEXT; Flags]
+ValidationCacheCreateFlagEXT                         :: enum u32 {}
+Win32SurfaceCreateFlagsKHR                           :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags]
+Win32SurfaceCreateFlagKHR                            :: enum u32 {}
+PipelineTessellationStateCreateFlags                 :: distinct bit_set[PipelineTessellationStateCreateFlag; Flags]
+PipelineTessellationStateCreateFlag                  :: enum u32 {}
+DescriptorPoolResetFlags                             :: distinct bit_set[DescriptorPoolResetFlag; Flags]
+DescriptorPoolResetFlag                              :: enum u32 {}
+AccelerationStructureMotionInfoFlagsNV               :: distinct bit_set[AccelerationStructureMotionInfoFlagNV; Flags]
+AccelerationStructureMotionInfoFlagNV                :: enum u32 {}
 
 

+ 1854 - 1854
vendor/vulkan/procedures.odin

@@ -8,1876 +8,1876 @@ import "core:c"
 // Procedure Types
 
 when ODIN_OS == "windows" {
-	ProcAllocationFunction                                              :: #type proc "stdcall" (pUserData: rawptr, size: int, alignment: int, allocationScope: SystemAllocationScope) -> rawptr;
-	ProcFreeFunction                                                    :: #type proc "stdcall" (pUserData: rawptr, pMemory: rawptr);
-	ProcInternalAllocationNotification                                  :: #type proc "stdcall" (pUserData: rawptr, size: int, allocationType: InternalAllocationType, allocationScope: SystemAllocationScope);
-	ProcInternalFreeNotification                                        :: #type proc "stdcall" (pUserData: rawptr, size: int, allocationType: InternalAllocationType, allocationScope: SystemAllocationScope);
-	ProcReallocationFunction                                            :: #type proc "stdcall" (pUserData: rawptr, pOriginal: rawptr, size: int, alignment: int, allocationScope: SystemAllocationScope) -> rawptr;
-	ProcVoidFunction                                                    :: #type proc "stdcall" ();
-	ProcCreateInstance                                                  :: #type proc "stdcall" (pCreateInfo: ^InstanceCreateInfo, pAllocator: ^AllocationCallbacks, pInstance: ^Instance) -> Result;
-	ProcDestroyInstance                                                 :: #type proc "stdcall" (instance: Instance, pAllocator: ^AllocationCallbacks);
-	ProcEnumeratePhysicalDevices                                        :: #type proc "stdcall" (instance: Instance, pPhysicalDeviceCount: ^u32, pPhysicalDevices: ^PhysicalDevice) -> Result;
-	ProcGetPhysicalDeviceFeatures                                       :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures);
-	ProcGetPhysicalDeviceFormatProperties                               :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties);
-	ProcGetPhysicalDeviceImageFormatProperties                          :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, pImageFormatProperties: ^ImageFormatProperties) -> Result;
-	ProcGetPhysicalDeviceProperties                                     :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties);
-	ProcGetPhysicalDeviceQueueFamilyProperties                          :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties);
-	ProcGetPhysicalDeviceMemoryProperties                               :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties);
-	ProcGetInstanceProcAddr                                             :: #type proc "stdcall" (instance: Instance, pName: cstring) -> ProcVoidFunction;
-	ProcGetDeviceProcAddr                                               :: #type proc "stdcall" (device: Device, pName: cstring) -> ProcVoidFunction;
-	ProcCreateDevice                                                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pCreateInfo: ^DeviceCreateInfo, pAllocator: ^AllocationCallbacks, pDevice: ^Device) -> Result;
-	ProcDestroyDevice                                                   :: #type proc "stdcall" (device: Device, pAllocator: ^AllocationCallbacks);
-	ProcEnumerateInstanceExtensionProperties                            :: #type proc "stdcall" (pLayerName: cstring, pPropertyCount: ^u32, pProperties: ^ExtensionProperties) -> Result;
-	ProcEnumerateDeviceExtensionProperties                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pLayerName: cstring, pPropertyCount: ^u32, pProperties: ^ExtensionProperties) -> Result;
-	ProcEnumerateInstanceLayerProperties                                :: #type proc "stdcall" (pPropertyCount: ^u32, pProperties: ^LayerProperties) -> Result;
-	ProcEnumerateDeviceLayerProperties                                  :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^LayerProperties) -> Result;
-	ProcGetDeviceQueue                                                  :: #type proc "stdcall" (device: Device, queueFamilyIndex: u32, queueIndex: u32, pQueue: ^Queue);
-	ProcQueueSubmit                                                     :: #type proc "stdcall" (queue: Queue, submitCount: u32, pSubmits: ^SubmitInfo, fence: Fence) -> Result;
-	ProcQueueWaitIdle                                                   :: #type proc "stdcall" (queue: Queue) -> Result;
-	ProcDeviceWaitIdle                                                  :: #type proc "stdcall" (device: Device) -> Result;
-	ProcAllocateMemory                                                  :: #type proc "stdcall" (device: Device, pAllocateInfo: ^MemoryAllocateInfo, pAllocator: ^AllocationCallbacks, pMemory: ^DeviceMemory) -> Result;
-	ProcFreeMemory                                                      :: #type proc "stdcall" (device: Device, memory: DeviceMemory, pAllocator: ^AllocationCallbacks);
-	ProcMapMemory                                                       :: #type proc "stdcall" (device: Device, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, flags: MemoryMapFlags, ppData: ^rawptr) -> Result;
-	ProcUnmapMemory                                                     :: #type proc "stdcall" (device: Device, memory: DeviceMemory);
-	ProcFlushMappedMemoryRanges                                         :: #type proc "stdcall" (device: Device, memoryRangeCount: u32, pMemoryRanges: ^MappedMemoryRange) -> Result;
-	ProcInvalidateMappedMemoryRanges                                    :: #type proc "stdcall" (device: Device, memoryRangeCount: u32, pMemoryRanges: ^MappedMemoryRange) -> Result;
-	ProcGetDeviceMemoryCommitment                                       :: #type proc "stdcall" (device: Device, memory: DeviceMemory, pCommittedMemoryInBytes: ^DeviceSize);
-	ProcBindBufferMemory                                                :: #type proc "stdcall" (device: Device, buffer: Buffer, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result;
-	ProcBindImageMemory                                                 :: #type proc "stdcall" (device: Device, image: Image, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result;
-	ProcGetBufferMemoryRequirements                                     :: #type proc "stdcall" (device: Device, buffer: Buffer, pMemoryRequirements: ^MemoryRequirements);
-	ProcGetImageMemoryRequirements                                      :: #type proc "stdcall" (device: Device, image: Image, pMemoryRequirements: ^MemoryRequirements);
-	ProcGetImageSparseMemoryRequirements                                :: #type proc "stdcall" (device: Device, image: Image, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements);
-	ProcGetPhysicalDeviceSparseImageFormatProperties                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, samples: SampleCountFlags, usage: ImageUsageFlags, tiling: ImageTiling, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties);
-	ProcQueueBindSparse                                                 :: #type proc "stdcall" (queue: Queue, bindInfoCount: u32, pBindInfo: ^BindSparseInfo, fence: Fence) -> Result;
-	ProcCreateFence                                                     :: #type proc "stdcall" (device: Device, pCreateInfo: ^FenceCreateInfo, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result;
-	ProcDestroyFence                                                    :: #type proc "stdcall" (device: Device, fence: Fence, pAllocator: ^AllocationCallbacks);
-	ProcResetFences                                                     :: #type proc "stdcall" (device: Device, fenceCount: u32, pFences: ^Fence) -> Result;
-	ProcGetFenceStatus                                                  :: #type proc "stdcall" (device: Device, fence: Fence) -> Result;
-	ProcWaitForFences                                                   :: #type proc "stdcall" (device: Device, fenceCount: u32, pFences: ^Fence, waitAll: b32, timeout: u64) -> Result;
-	ProcCreateSemaphore                                                 :: #type proc "stdcall" (device: Device, pCreateInfo: ^SemaphoreCreateInfo, pAllocator: ^AllocationCallbacks, pSemaphore: ^Semaphore) -> Result;
-	ProcDestroySemaphore                                                :: #type proc "stdcall" (device: Device, semaphore: Semaphore, pAllocator: ^AllocationCallbacks);
-	ProcCreateEvent                                                     :: #type proc "stdcall" (device: Device, pCreateInfo: ^EventCreateInfo, pAllocator: ^AllocationCallbacks, pEvent: ^Event) -> Result;
-	ProcDestroyEvent                                                    :: #type proc "stdcall" (device: Device, event: Event, pAllocator: ^AllocationCallbacks);
-	ProcGetEventStatus                                                  :: #type proc "stdcall" (device: Device, event: Event) -> Result;
-	ProcSetEvent                                                        :: #type proc "stdcall" (device: Device, event: Event) -> Result;
-	ProcResetEvent                                                      :: #type proc "stdcall" (device: Device, event: Event) -> Result;
-	ProcCreateQueryPool                                                 :: #type proc "stdcall" (device: Device, pCreateInfo: ^QueryPoolCreateInfo, pAllocator: ^AllocationCallbacks, pQueryPool: ^QueryPool) -> Result;
-	ProcDestroyQueryPool                                                :: #type proc "stdcall" (device: Device, queryPool: QueryPool, pAllocator: ^AllocationCallbacks);
-	ProcGetQueryPoolResults                                             :: #type proc "stdcall" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dataSize: int, pData: rawptr, stride: DeviceSize, flags: QueryResultFlags) -> Result;
-	ProcCreateBuffer                                                    :: #type proc "stdcall" (device: Device, pCreateInfo: ^BufferCreateInfo, pAllocator: ^AllocationCallbacks, pBuffer: ^Buffer) -> Result;
-	ProcDestroyBuffer                                                   :: #type proc "stdcall" (device: Device, buffer: Buffer, pAllocator: ^AllocationCallbacks);
-	ProcCreateBufferView                                                :: #type proc "stdcall" (device: Device, pCreateInfo: ^BufferViewCreateInfo, pAllocator: ^AllocationCallbacks, pView: ^BufferView) -> Result;
-	ProcDestroyBufferView                                               :: #type proc "stdcall" (device: Device, bufferView: BufferView, pAllocator: ^AllocationCallbacks);
-	ProcCreateImage                                                     :: #type proc "stdcall" (device: Device, pCreateInfo: ^ImageCreateInfo, pAllocator: ^AllocationCallbacks, pImage: ^Image) -> Result;
-	ProcDestroyImage                                                    :: #type proc "stdcall" (device: Device, image: Image, pAllocator: ^AllocationCallbacks);
-	ProcGetImageSubresourceLayout                                       :: #type proc "stdcall" (device: Device, image: Image, pSubresource: ^ImageSubresource, pLayout: ^SubresourceLayout);
-	ProcCreateImageView                                                 :: #type proc "stdcall" (device: Device, pCreateInfo: ^ImageViewCreateInfo, pAllocator: ^AllocationCallbacks, pView: ^ImageView) -> Result;
-	ProcDestroyImageView                                                :: #type proc "stdcall" (device: Device, imageView: ImageView, pAllocator: ^AllocationCallbacks);
-	ProcCreateShaderModule                                              :: #type proc "stdcall" (device: Device, pCreateInfo: ^ShaderModuleCreateInfo, pAllocator: ^AllocationCallbacks, pShaderModule: ^ShaderModule) -> Result;
-	ProcDestroyShaderModule                                             :: #type proc "stdcall" (device: Device, shaderModule: ShaderModule, pAllocator: ^AllocationCallbacks);
-	ProcCreatePipelineCache                                             :: #type proc "stdcall" (device: Device, pCreateInfo: ^PipelineCacheCreateInfo, pAllocator: ^AllocationCallbacks, pPipelineCache: ^PipelineCache) -> Result;
-	ProcDestroyPipelineCache                                            :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, pAllocator: ^AllocationCallbacks);
-	ProcGetPipelineCacheData                                            :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, pDataSize: ^int, pData: rawptr) -> Result;
-	ProcMergePipelineCaches                                             :: #type proc "stdcall" (device: Device, dstCache: PipelineCache, srcCacheCount: u32, pSrcCaches: ^PipelineCache) -> Result;
-	ProcCreateGraphicsPipelines                                         :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^GraphicsPipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result;
-	ProcCreateComputePipelines                                          :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^ComputePipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result;
-	ProcDestroyPipeline                                                 :: #type proc "stdcall" (device: Device, pipeline: Pipeline, pAllocator: ^AllocationCallbacks);
-	ProcCreatePipelineLayout                                            :: #type proc "stdcall" (device: Device, pCreateInfo: ^PipelineLayoutCreateInfo, pAllocator: ^AllocationCallbacks, pPipelineLayout: ^PipelineLayout) -> Result;
-	ProcDestroyPipelineLayout                                           :: #type proc "stdcall" (device: Device, pipelineLayout: PipelineLayout, pAllocator: ^AllocationCallbacks);
-	ProcCreateSampler                                                   :: #type proc "stdcall" (device: Device, pCreateInfo: ^SamplerCreateInfo, pAllocator: ^AllocationCallbacks, pSampler: ^Sampler) -> Result;
-	ProcDestroySampler                                                  :: #type proc "stdcall" (device: Device, sampler: Sampler, pAllocator: ^AllocationCallbacks);
-	ProcCreateDescriptorSetLayout                                       :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pAllocator: ^AllocationCallbacks, pSetLayout: ^DescriptorSetLayout) -> Result;
-	ProcDestroyDescriptorSetLayout                                      :: #type proc "stdcall" (device: Device, descriptorSetLayout: DescriptorSetLayout, pAllocator: ^AllocationCallbacks);
-	ProcCreateDescriptorPool                                            :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorPoolCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorPool: ^DescriptorPool) -> Result;
-	ProcDestroyDescriptorPool                                           :: #type proc "stdcall" (device: Device, descriptorPool: DescriptorPool, pAllocator: ^AllocationCallbacks);
-	ProcResetDescriptorPool                                             :: #type proc "stdcall" (device: Device, descriptorPool: DescriptorPool, flags: DescriptorPoolResetFlags) -> Result;
-	ProcAllocateDescriptorSets                                          :: #type proc "stdcall" (device: Device, pAllocateInfo: ^DescriptorSetAllocateInfo, pDescriptorSets: ^DescriptorSet) -> Result;
-	ProcFreeDescriptorSets                                              :: #type proc "stdcall" (device: Device, descriptorPool: DescriptorPool, descriptorSetCount: u32, pDescriptorSets: ^DescriptorSet) -> Result;
-	ProcUpdateDescriptorSets                                            :: #type proc "stdcall" (device: Device, descriptorWriteCount: u32, pDescriptorWrites: ^WriteDescriptorSet, descriptorCopyCount: u32, pDescriptorCopies: ^CopyDescriptorSet);
-	ProcCreateFramebuffer                                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^FramebufferCreateInfo, pAllocator: ^AllocationCallbacks, pFramebuffer: ^Framebuffer) -> Result;
-	ProcDestroyFramebuffer                                              :: #type proc "stdcall" (device: Device, framebuffer: Framebuffer, pAllocator: ^AllocationCallbacks);
-	ProcCreateRenderPass                                                :: #type proc "stdcall" (device: Device, pCreateInfo: ^RenderPassCreateInfo, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result;
-	ProcDestroyRenderPass                                               :: #type proc "stdcall" (device: Device, renderPass: RenderPass, pAllocator: ^AllocationCallbacks);
-	ProcGetRenderAreaGranularity                                        :: #type proc "stdcall" (device: Device, renderPass: RenderPass, pGranularity: ^Extent2D);
-	ProcCreateCommandPool                                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^CommandPoolCreateInfo, pAllocator: ^AllocationCallbacks, pCommandPool: ^CommandPool) -> Result;
-	ProcDestroyCommandPool                                              :: #type proc "stdcall" (device: Device, commandPool: CommandPool, pAllocator: ^AllocationCallbacks);
-	ProcResetCommandPool                                                :: #type proc "stdcall" (device: Device, commandPool: CommandPool, flags: CommandPoolResetFlags) -> Result;
-	ProcAllocateCommandBuffers                                          :: #type proc "stdcall" (device: Device, pAllocateInfo: ^CommandBufferAllocateInfo, pCommandBuffers: ^CommandBuffer) -> Result;
-	ProcFreeCommandBuffers                                              :: #type proc "stdcall" (device: Device, commandPool: CommandPool, commandBufferCount: u32, pCommandBuffers: ^CommandBuffer);
-	ProcBeginCommandBuffer                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pBeginInfo: ^CommandBufferBeginInfo) -> Result;
-	ProcEndCommandBuffer                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer) -> Result;
-	ProcResetCommandBuffer                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, flags: CommandBufferResetFlags) -> Result;
-	ProcCmdBindPipeline                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline);
-	ProcCmdSetViewport                                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewports: ^Viewport);
-	ProcCmdSetScissor                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstScissor: u32, scissorCount: u32, pScissors: ^Rect2D);
-	ProcCmdSetLineWidth                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, lineWidth: f32);
-	ProcCmdSetDepthBias                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32);
-	ProcCmdSetBlendConstants                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer);
-	ProcCmdSetDepthBounds                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, minDepthBounds: f32, maxDepthBounds: f32);
-	ProcCmdSetStencilCompareMask                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, compareMask: u32);
-	ProcCmdSetStencilWriteMask                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, writeMask: u32);
-	ProcCmdSetStencilReference                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, reference: u32);
-	ProcCmdBindDescriptorSets                                           :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, firstSet: u32, descriptorSetCount: u32, pDescriptorSets: ^DescriptorSet, dynamicOffsetCount: u32, pDynamicOffsets: ^u32);
-	ProcCmdBindIndexBuffer                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, indexType: IndexType);
-	ProcCmdBindVertexBuffers                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize);
-	ProcCmdDraw                                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32);
-	ProcCmdDrawIndexed                                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, indexCount: u32, instanceCount: u32, firstIndex: u32, vertexOffset: i32, firstInstance: u32);
-	ProcCmdDrawIndirect                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32);
-	ProcCmdDrawIndexedIndirect                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32);
-	ProcCmdDispatch                                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, groupCountX: u32, groupCountY: u32, groupCountZ: u32);
-	ProcCmdDispatchIndirect                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize);
-	ProcCmdCopyBuffer                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstBuffer: Buffer, regionCount: u32, pRegions: ^BufferCopy);
-	ProcCmdCopyImage                                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageCopy);
-	ProcCmdBlitImage                                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageBlit, filter: Filter);
-	ProcCmdCopyBufferToImage                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^BufferImageCopy);
-	ProcCmdCopyImageToBuffer                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstBuffer: Buffer, regionCount: u32, pRegions: ^BufferImageCopy);
-	ProcCmdUpdateBuffer                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, dataSize: DeviceSize, pData: rawptr);
-	ProcCmdFillBuffer                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, size: DeviceSize, data: u32);
-	ProcCmdClearColorImage                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pColor: ^ClearColorValue, rangeCount: u32, pRanges: ^ImageSubresourceRange);
-	ProcCmdClearDepthStencilImage                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pDepthStencil: ^ClearDepthStencilValue, rangeCount: u32, pRanges: ^ImageSubresourceRange);
-	ProcCmdClearAttachments                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, attachmentCount: u32, pAttachments: ^ClearAttachment, rectCount: u32, pRects: ^ClearRect);
-	ProcCmdResolveImage                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageResolve);
-	ProcCmdSetEvent                                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags);
-	ProcCmdResetEvent                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags);
-	ProcCmdWaitEvents                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, eventCount: u32, pEvents: ^Event, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, memoryBarrierCount: u32, pMemoryBarriers: ^MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: ^BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: ^ImageMemoryBarrier);
-	ProcCmdPipelineBarrier                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, dependencyFlags: DependencyFlags, memoryBarrierCount: u32, pMemoryBarriers: ^MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: ^BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: ^ImageMemoryBarrier);
-	ProcCmdBeginQuery                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags);
-	ProcCmdEndQuery                                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32);
-	ProcCmdResetQueryPool                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32);
-	ProcCmdWriteTimestamp                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, queryPool: QueryPool, query: u32);
-	ProcCmdCopyQueryPoolResults                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dstBuffer: Buffer, dstOffset: DeviceSize, stride: DeviceSize, flags: QueryResultFlags);
-	ProcCmdPushConstants                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, layout: PipelineLayout, stageFlags: ShaderStageFlags, offset: u32, size: u32, pValues: rawptr);
-	ProcCmdBeginRenderPass                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, contents: SubpassContents);
-	ProcCmdNextSubpass                                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, contents: SubpassContents);
-	ProcCmdEndRenderPass                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer);
-	ProcCmdExecuteCommands                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, commandBufferCount: u32, pCommandBuffers: ^CommandBuffer);
-	ProcEnumerateInstanceVersion                                        :: #type proc "stdcall" (pApiVersion: ^u32) -> Result;
-	ProcBindBufferMemory2                                               :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindBufferMemoryInfo) -> Result;
-	ProcBindImageMemory2                                                :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindImageMemoryInfo) -> Result;
-	ProcGetDeviceGroupPeerMemoryFeatures                                :: #type proc "stdcall" (device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: ^PeerMemoryFeatureFlags);
-	ProcCmdSetDeviceMask                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, deviceMask: u32);
-	ProcCmdDispatchBase                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32);
-	ProcEnumeratePhysicalDeviceGroups                                   :: #type proc "stdcall" (instance: Instance, pPhysicalDeviceGroupCount: ^u32, pPhysicalDeviceGroupProperties: ^PhysicalDeviceGroupProperties) -> Result;
-	ProcGetImageMemoryRequirements2                                     :: #type proc "stdcall" (device: Device, pInfo: ^ImageMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2);
-	ProcGetBufferMemoryRequirements2                                    :: #type proc "stdcall" (device: Device, pInfo: ^BufferMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2);
-	ProcGetImageSparseMemoryRequirements2                               :: #type proc "stdcall" (device: Device, pInfo: ^ImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements2);
-	ProcGetPhysicalDeviceFeatures2                                      :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures2);
-	ProcGetPhysicalDeviceProperties2                                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties2);
-	ProcGetPhysicalDeviceFormatProperties2                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties2);
-	ProcGetPhysicalDeviceImageFormatProperties2                         :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pImageFormatInfo: ^PhysicalDeviceImageFormatInfo2, pImageFormatProperties: ^ImageFormatProperties2) -> Result;
-	ProcGetPhysicalDeviceQueueFamilyProperties2                         :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties2);
-	ProcGetPhysicalDeviceMemoryProperties2                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties2);
-	ProcGetPhysicalDeviceSparseImageFormatProperties2                   :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFormatInfo: ^PhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties2);
-	ProcTrimCommandPool                                                 :: #type proc "stdcall" (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags);
-	ProcGetDeviceQueue2                                                 :: #type proc "stdcall" (device: Device, pQueueInfo: ^DeviceQueueInfo2, pQueue: ^Queue);
-	ProcCreateSamplerYcbcrConversion                                    :: #type proc "stdcall" (device: Device, pCreateInfo: ^SamplerYcbcrConversionCreateInfo, pAllocator: ^AllocationCallbacks, pYcbcrConversion: ^SamplerYcbcrConversion) -> Result;
-	ProcDestroySamplerYcbcrConversion                                   :: #type proc "stdcall" (device: Device, ycbcrConversion: SamplerYcbcrConversion, pAllocator: ^AllocationCallbacks);
-	ProcCreateDescriptorUpdateTemplate                                  :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result;
-	ProcDestroyDescriptorUpdateTemplate                                 :: #type proc "stdcall" (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplate, pAllocator: ^AllocationCallbacks);
-	ProcUpdateDescriptorSetWithTemplate                                 :: #type proc "stdcall" (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplate, pData: rawptr);
-	ProcGetPhysicalDeviceExternalBufferProperties                       :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalBufferInfo: ^PhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ^ExternalBufferProperties);
-	ProcGetPhysicalDeviceExternalFenceProperties                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalFenceInfo: ^PhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ^ExternalFenceProperties);
-	ProcGetPhysicalDeviceExternalSemaphoreProperties                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalSemaphoreInfo: ^PhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ^ExternalSemaphoreProperties);
-	ProcGetDescriptorSetLayoutSupport                                   :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pSupport: ^DescriptorSetLayoutSupport);
-	ProcCmdDrawIndirectCount                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCmdDrawIndexedIndirectCount                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCreateRenderPass2                                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^RenderPassCreateInfo2, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result;
-	ProcCmdBeginRenderPass2                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, pSubpassBeginInfo: ^SubpassBeginInfo);
-	ProcCmdNextSubpass2                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo);
-	ProcCmdEndRenderPass2                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSubpassEndInfo: ^SubpassEndInfo);
-	ProcResetQueryPool                                                  :: #type proc "stdcall" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32);
-	ProcGetSemaphoreCounterValue                                        :: #type proc "stdcall" (device: Device, semaphore: Semaphore, pValue: ^u64) -> Result;
-	ProcWaitSemaphores                                                  :: #type proc "stdcall" (device: Device, pWaitInfo: ^SemaphoreWaitInfo, timeout: u64) -> Result;
-	ProcSignalSemaphore                                                 :: #type proc "stdcall" (device: Device, pSignalInfo: ^SemaphoreSignalInfo) -> Result;
-	ProcGetBufferDeviceAddress                                          :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress;
-	ProcGetBufferOpaqueCaptureAddress                                   :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> u64;
-	ProcGetDeviceMemoryOpaqueCaptureAddress                             :: #type proc "stdcall" (device: Device, pInfo: ^DeviceMemoryOpaqueCaptureAddressInfo) -> u64;
-	ProcDestroySurfaceKHR                                               :: #type proc "stdcall" (instance: Instance, surface: SurfaceKHR, pAllocator: ^AllocationCallbacks);
-	ProcGetPhysicalDeviceSurfaceSupportKHR                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, surface: SurfaceKHR, pSupported: ^b32) -> Result;
-	ProcGetPhysicalDeviceSurfaceCapabilitiesKHR                         :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: ^SurfaceCapabilitiesKHR) -> Result;
-	ProcGetPhysicalDeviceSurfaceFormatsKHR                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceFormatCount: ^u32, pSurfaceFormats: ^SurfaceFormatKHR) -> Result;
-	ProcGetPhysicalDeviceSurfacePresentModesKHR                         :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pPresentModeCount: ^u32, pPresentModes: ^PresentModeKHR) -> Result;
-	ProcCreateSwapchainKHR                                              :: #type proc "stdcall" (device: Device, pCreateInfo: ^SwapchainCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSwapchain: ^SwapchainKHR) -> Result;
-	ProcDestroySwapchainKHR                                             :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, pAllocator: ^AllocationCallbacks);
-	ProcGetSwapchainImagesKHR                                           :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, pSwapchainImageCount: ^u32, pSwapchainImages: ^Image) -> Result;
-	ProcAcquireNextImageKHR                                             :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence, pImageIndex: ^u32) -> Result;
-	ProcQueuePresentKHR                                                 :: #type proc "stdcall" (queue: Queue, pPresentInfo: ^PresentInfoKHR) -> Result;
-	ProcGetDeviceGroupPresentCapabilitiesKHR                            :: #type proc "stdcall" (device: Device, pDeviceGroupPresentCapabilities: ^DeviceGroupPresentCapabilitiesKHR) -> Result;
-	ProcGetDeviceGroupSurfacePresentModesKHR                            :: #type proc "stdcall" (device: Device, surface: SurfaceKHR, pModes: ^DeviceGroupPresentModeFlagsKHR) -> Result;
-	ProcGetPhysicalDevicePresentRectanglesKHR                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pRectCount: ^u32, pRects: ^Rect2D) -> Result;
-	ProcAcquireNextImage2KHR                                            :: #type proc "stdcall" (device: Device, pAcquireInfo: ^AcquireNextImageInfoKHR, pImageIndex: ^u32) -> Result;
-	ProcGetPhysicalDeviceDisplayPropertiesKHR                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPropertiesKHR) -> Result;
-	ProcGetPhysicalDeviceDisplayPlanePropertiesKHR                      :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPlanePropertiesKHR) -> Result;
-	ProcGetDisplayPlaneSupportedDisplaysKHR                             :: #type proc "stdcall" (physicalDevice: PhysicalDevice, planeIndex: u32, pDisplayCount: ^u32, pDisplays: ^DisplayKHR) -> Result;
-	ProcGetDisplayModePropertiesKHR                                     :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: ^u32, pProperties: ^DisplayModePropertiesKHR) -> Result;
-	ProcCreateDisplayModeKHR                                            :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR, pCreateInfo: ^DisplayModeCreateInfoKHR, pAllocator: ^AllocationCallbacks, pMode: ^DisplayModeKHR) -> Result;
-	ProcGetDisplayPlaneCapabilitiesKHR                                  :: #type proc "stdcall" (physicalDevice: PhysicalDevice, mode: DisplayModeKHR, planeIndex: u32, pCapabilities: ^DisplayPlaneCapabilitiesKHR) -> Result;
-	ProcCreateDisplayPlaneSurfaceKHR                                    :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^DisplaySurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcCreateSharedSwapchainsKHR                                       :: #type proc "stdcall" (device: Device, swapchainCount: u32, pCreateInfos: ^SwapchainCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSwapchains: ^SwapchainKHR) -> Result;
-	ProcGetPhysicalDeviceFeatures2KHR                                   :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures2);
-	ProcGetPhysicalDeviceProperties2KHR                                 :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties2);
-	ProcGetPhysicalDeviceFormatProperties2KHR                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties2);
-	ProcGetPhysicalDeviceImageFormatProperties2KHR                      :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pImageFormatInfo: ^PhysicalDeviceImageFormatInfo2, pImageFormatProperties: ^ImageFormatProperties2) -> Result;
-	ProcGetPhysicalDeviceQueueFamilyProperties2KHR                      :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties2);
-	ProcGetPhysicalDeviceMemoryProperties2KHR                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties2);
-	ProcGetPhysicalDeviceSparseImageFormatProperties2KHR                :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFormatInfo: ^PhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties2);
-	ProcGetDeviceGroupPeerMemoryFeaturesKHR                             :: #type proc "stdcall" (device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: ^PeerMemoryFeatureFlags);
-	ProcCmdSetDeviceMaskKHR                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, deviceMask: u32);
-	ProcCmdDispatchBaseKHR                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32);
-	ProcTrimCommandPoolKHR                                              :: #type proc "stdcall" (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags);
-	ProcEnumeratePhysicalDeviceGroupsKHR                                :: #type proc "stdcall" (instance: Instance, pPhysicalDeviceGroupCount: ^u32, pPhysicalDeviceGroupProperties: ^PhysicalDeviceGroupProperties) -> Result;
-	ProcGetPhysicalDeviceExternalBufferPropertiesKHR                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalBufferInfo: ^PhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ^ExternalBufferProperties);
-	ProcGetMemoryFdKHR                                                  :: #type proc "stdcall" (device: Device, pGetFdInfo: ^MemoryGetFdInfoKHR, pFd: ^c.int) -> Result;
-	ProcGetMemoryFdPropertiesKHR                                        :: #type proc "stdcall" (device: Device, handleType: ExternalMemoryHandleTypeFlags, fd: c.int, pMemoryFdProperties: ^MemoryFdPropertiesKHR) -> Result;
-	ProcGetPhysicalDeviceExternalSemaphorePropertiesKHR                 :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalSemaphoreInfo: ^PhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ^ExternalSemaphoreProperties);
-	ProcImportSemaphoreFdKHR                                            :: #type proc "stdcall" (device: Device, pImportSemaphoreFdInfo: ^ImportSemaphoreFdInfoKHR) -> Result;
-	ProcGetSemaphoreFdKHR                                               :: #type proc "stdcall" (device: Device, pGetFdInfo: ^SemaphoreGetFdInfoKHR, pFd: ^c.int) -> Result;
-	ProcCmdPushDescriptorSetKHR                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, set: u32, descriptorWriteCount: u32, pDescriptorWrites: ^WriteDescriptorSet);
-	ProcCmdPushDescriptorSetWithTemplateKHR                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, descriptorUpdateTemplate: DescriptorUpdateTemplate, layout: PipelineLayout, set: u32, pData: rawptr);
-	ProcCreateDescriptorUpdateTemplateKHR                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result;
-	ProcDestroyDescriptorUpdateTemplateKHR                              :: #type proc "stdcall" (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplate, pAllocator: ^AllocationCallbacks);
-	ProcUpdateDescriptorSetWithTemplateKHR                              :: #type proc "stdcall" (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplate, pData: rawptr);
-	ProcCreateRenderPass2KHR                                            :: #type proc "stdcall" (device: Device, pCreateInfo: ^RenderPassCreateInfo2, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result;
-	ProcCmdBeginRenderPass2KHR                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, pSubpassBeginInfo: ^SubpassBeginInfo);
-	ProcCmdNextSubpass2KHR                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo);
-	ProcCmdEndRenderPass2KHR                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSubpassEndInfo: ^SubpassEndInfo);
-	ProcGetSwapchainStatusKHR                                           :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR) -> Result;
-	ProcGetPhysicalDeviceExternalFencePropertiesKHR                     :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalFenceInfo: ^PhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ^ExternalFenceProperties);
-	ProcImportFenceFdKHR                                                :: #type proc "stdcall" (device: Device, pImportFenceFdInfo: ^ImportFenceFdInfoKHR) -> Result;
-	ProcGetFenceFdKHR                                                   :: #type proc "stdcall" (device: Device, pGetFdInfo: ^FenceGetFdInfoKHR, pFd: ^c.int) -> Result;
-	ProcEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   :: #type proc "stdcall" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, pCounterCount: ^u32, pCounters: ^PerformanceCounterKHR, pCounterDescriptions: ^PerformanceCounterDescriptionKHR) -> Result;
-	ProcGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPerformanceQueryCreateInfo: ^QueryPoolPerformanceCreateInfoKHR, pNumPasses: ^u32);
-	ProcAcquireProfilingLockKHR                                         :: #type proc "stdcall" (device: Device, pInfo: ^AcquireProfilingLockInfoKHR) -> Result;
-	ProcReleaseProfilingLockKHR                                         :: #type proc "stdcall" (device: Device);
-	ProcGetPhysicalDeviceSurfaceCapabilities2KHR                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ^SurfaceCapabilities2KHR) -> Result;
-	ProcGetPhysicalDeviceSurfaceFormats2KHR                             :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ^u32, pSurfaceFormats: ^SurfaceFormat2KHR) -> Result;
-	ProcGetPhysicalDeviceDisplayProperties2KHR                          :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayProperties2KHR) -> Result;
-	ProcGetPhysicalDeviceDisplayPlaneProperties2KHR                     :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPlaneProperties2KHR) -> Result;
-	ProcGetDisplayModeProperties2KHR                                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: ^u32, pProperties: ^DisplayModeProperties2KHR) -> Result;
-	ProcGetDisplayPlaneCapabilities2KHR                                 :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pDisplayPlaneInfo: ^DisplayPlaneInfo2KHR, pCapabilities: ^DisplayPlaneCapabilities2KHR) -> Result;
-	ProcGetImageMemoryRequirements2KHR                                  :: #type proc "stdcall" (device: Device, pInfo: ^ImageMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2);
-	ProcGetBufferMemoryRequirements2KHR                                 :: #type proc "stdcall" (device: Device, pInfo: ^BufferMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2);
-	ProcGetImageSparseMemoryRequirements2KHR                            :: #type proc "stdcall" (device: Device, pInfo: ^ImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements2);
-	ProcCreateSamplerYcbcrConversionKHR                                 :: #type proc "stdcall" (device: Device, pCreateInfo: ^SamplerYcbcrConversionCreateInfo, pAllocator: ^AllocationCallbacks, pYcbcrConversion: ^SamplerYcbcrConversion) -> Result;
-	ProcDestroySamplerYcbcrConversionKHR                                :: #type proc "stdcall" (device: Device, ycbcrConversion: SamplerYcbcrConversion, pAllocator: ^AllocationCallbacks);
-	ProcBindBufferMemory2KHR                                            :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindBufferMemoryInfo) -> Result;
-	ProcBindImageMemory2KHR                                             :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindImageMemoryInfo) -> Result;
-	ProcGetDescriptorSetLayoutSupportKHR                                :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pSupport: ^DescriptorSetLayoutSupport);
-	ProcCmdDrawIndirectCountKHR                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCmdDrawIndexedIndirectCountKHR                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcGetSemaphoreCounterValueKHR                                     :: #type proc "stdcall" (device: Device, semaphore: Semaphore, pValue: ^u64) -> Result;
-	ProcWaitSemaphoresKHR                                               :: #type proc "stdcall" (device: Device, pWaitInfo: ^SemaphoreWaitInfo, timeout: u64) -> Result;
-	ProcSignalSemaphoreKHR                                              :: #type proc "stdcall" (device: Device, pSignalInfo: ^SemaphoreSignalInfo) -> Result;
-	ProcGetPhysicalDeviceFragmentShadingRatesKHR                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFragmentShadingRateCount: ^u32, pFragmentShadingRates: ^PhysicalDeviceFragmentShadingRateKHR) -> Result;
-	ProcCmdSetFragmentShadingRateKHR                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, pFragmentSize: ^Extent2D);
-	ProcWaitForPresentKHR                                               :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, presentId: u64, timeout: u64) -> Result;
-	ProcGetBufferDeviceAddressKHR                                       :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress;
-	ProcGetBufferOpaqueCaptureAddressKHR                                :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> u64;
-	ProcGetDeviceMemoryOpaqueCaptureAddressKHR                          :: #type proc "stdcall" (device: Device, pInfo: ^DeviceMemoryOpaqueCaptureAddressInfo) -> u64;
-	ProcCreateDeferredOperationKHR                                      :: #type proc "stdcall" (device: Device, pAllocator: ^AllocationCallbacks, pDeferredOperation: ^DeferredOperationKHR) -> Result;
-	ProcDestroyDeferredOperationKHR                                     :: #type proc "stdcall" (device: Device, operation: DeferredOperationKHR, pAllocator: ^AllocationCallbacks);
-	ProcGetDeferredOperationMaxConcurrencyKHR                           :: #type proc "stdcall" (device: Device, operation: DeferredOperationKHR) -> u32;
-	ProcGetDeferredOperationResultKHR                                   :: #type proc "stdcall" (device: Device, operation: DeferredOperationKHR) -> Result;
-	ProcDeferredOperationJoinKHR                                        :: #type proc "stdcall" (device: Device, operation: DeferredOperationKHR) -> Result;
-	ProcGetPipelineExecutablePropertiesKHR                              :: #type proc "stdcall" (device: Device, pPipelineInfo: ^PipelineInfoKHR, pExecutableCount: ^u32, pProperties: ^PipelineExecutablePropertiesKHR) -> Result;
-	ProcGetPipelineExecutableStatisticsKHR                              :: #type proc "stdcall" (device: Device, pExecutableInfo: ^PipelineExecutableInfoKHR, pStatisticCount: ^u32, pStatistics: ^PipelineExecutableStatisticKHR) -> Result;
-	ProcGetPipelineExecutableInternalRepresentationsKHR                 :: #type proc "stdcall" (device: Device, pExecutableInfo: ^PipelineExecutableInfoKHR, pInternalRepresentationCount: ^u32, pInternalRepresentations: ^PipelineExecutableInternalRepresentationKHR) -> Result;
-	ProcCmdSetEvent2KHR                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, event: Event, pDependencyInfo: ^DependencyInfoKHR);
-	ProcCmdResetEvent2KHR                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags2KHR);
-	ProcCmdWaitEvents2KHR                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, eventCount: u32, pEvents: ^Event, pDependencyInfos: ^DependencyInfoKHR);
-	ProcCmdPipelineBarrier2KHR                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, pDependencyInfo: ^DependencyInfoKHR);
-	ProcCmdWriteTimestamp2KHR                                           :: #type proc "stdcall" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2KHR, queryPool: QueryPool, query: u32);
-	ProcQueueSubmit2KHR                                                 :: #type proc "stdcall" (queue: Queue, submitCount: u32, pSubmits: ^SubmitInfo2KHR, fence: Fence) -> Result;
-	ProcCmdWriteBufferMarker2AMD                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2KHR, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32);
-	ProcGetQueueCheckpointData2NV                                       :: #type proc "stdcall" (queue: Queue, pCheckpointDataCount: ^u32, pCheckpointData: ^CheckpointData2NV);
-	ProcCmdCopyBuffer2KHR                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCopyBufferInfo: ^CopyBufferInfo2KHR);
-	ProcCmdCopyImage2KHR                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCopyImageInfo: ^CopyImageInfo2KHR);
-	ProcCmdCopyBufferToImage2KHR                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCopyBufferToImageInfo: ^CopyBufferToImageInfo2KHR);
-	ProcCmdCopyImageToBuffer2KHR                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCopyImageToBufferInfo: ^CopyImageToBufferInfo2KHR);
-	ProcCmdBlitImage2KHR                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, pBlitImageInfo: ^BlitImageInfo2KHR);
-	ProcCmdResolveImage2KHR                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, pResolveImageInfo: ^ResolveImageInfo2KHR);
-	ProcDebugReportCallbackEXT                                          :: #type proc "stdcall" (flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring, pUserData: rawptr) -> b32;
-	ProcCreateDebugReportCallbackEXT                                    :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^DebugReportCallbackCreateInfoEXT, pAllocator: ^AllocationCallbacks, pCallback: ^DebugReportCallbackEXT) -> Result;
-	ProcDestroyDebugReportCallbackEXT                                   :: #type proc "stdcall" (instance: Instance, callback: DebugReportCallbackEXT, pAllocator: ^AllocationCallbacks);
-	ProcDebugReportMessageEXT                                           :: #type proc "stdcall" (instance: Instance, flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring);
-	ProcDebugMarkerSetObjectTagEXT                                      :: #type proc "stdcall" (device: Device, pTagInfo: ^DebugMarkerObjectTagInfoEXT) -> Result;
-	ProcDebugMarkerSetObjectNameEXT                                     :: #type proc "stdcall" (device: Device, pNameInfo: ^DebugMarkerObjectNameInfoEXT) -> Result;
-	ProcCmdDebugMarkerBeginEXT                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, pMarkerInfo: ^DebugMarkerMarkerInfoEXT);
-	ProcCmdDebugMarkerEndEXT                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer);
-	ProcCmdDebugMarkerInsertEXT                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pMarkerInfo: ^DebugMarkerMarkerInfoEXT);
-	ProcCmdBindTransformFeedbackBuffersEXT                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize, pSizes: ^DeviceSize);
-	ProcCmdBeginTransformFeedbackEXT                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: ^Buffer, pCounterBufferOffsets: ^DeviceSize);
-	ProcCmdEndTransformFeedbackEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: ^Buffer, pCounterBufferOffsets: ^DeviceSize);
-	ProcCmdBeginQueryIndexedEXT                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags, index: u32);
-	ProcCmdEndQueryIndexedEXT                                           :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, index: u32);
-	ProcCmdDrawIndirectByteCountEXT                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, instanceCount: u32, firstInstance: u32, counterBuffer: Buffer, counterBufferOffset: DeviceSize, counterOffset: u32, vertexStride: u32);
-	ProcCreateCuModuleNVX                                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^CuModuleCreateInfoNVX, pAllocator: ^AllocationCallbacks, pModule: ^CuModuleNVX) -> Result;
-	ProcCreateCuFunctionNVX                                             :: #type proc "stdcall" (device: Device, pCreateInfo: ^CuFunctionCreateInfoNVX, pAllocator: ^AllocationCallbacks, pFunction: ^CuFunctionNVX) -> Result;
-	ProcDestroyCuModuleNVX                                              :: #type proc "stdcall" (device: Device, module: CuModuleNVX, pAllocator: ^AllocationCallbacks);
-	ProcDestroyCuFunctionNVX                                            :: #type proc "stdcall" (device: Device, function: CuFunctionNVX, pAllocator: ^AllocationCallbacks);
-	ProcCmdCuLaunchKernelNVX                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, pLaunchInfo: ^CuLaunchInfoNVX);
-	ProcGetImageViewHandleNVX                                           :: #type proc "stdcall" (device: Device, pInfo: ^ImageViewHandleInfoNVX) -> u32;
-	ProcGetImageViewAddressNVX                                          :: #type proc "stdcall" (device: Device, imageView: ImageView, pProperties: ^ImageViewAddressPropertiesNVX) -> Result;
-	ProcCmdDrawIndirectCountAMD                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCmdDrawIndexedIndirectCountAMD                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcGetShaderInfoAMD                                                :: #type proc "stdcall" (device: Device, pipeline: Pipeline, shaderStage: ShaderStageFlags, infoType: ShaderInfoTypeAMD, pInfoSize: ^int, pInfo: rawptr) -> Result;
-	ProcGetPhysicalDeviceExternalImageFormatPropertiesNV                :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, externalHandleType: ExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ^ExternalImageFormatPropertiesNV) -> Result;
-	ProcCmdBeginConditionalRenderingEXT                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pConditionalRenderingBegin: ^ConditionalRenderingBeginInfoEXT);
-	ProcCmdEndConditionalRenderingEXT                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer);
-	ProcCmdSetViewportWScalingNV                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewportWScalings: ^ViewportWScalingNV);
-	ProcReleaseDisplayEXT                                               :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result;
-	ProcGetPhysicalDeviceSurfaceCapabilities2EXT                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: ^SurfaceCapabilities2EXT) -> Result;
-	ProcDisplayPowerControlEXT                                          :: #type proc "stdcall" (device: Device, display: DisplayKHR, pDisplayPowerInfo: ^DisplayPowerInfoEXT) -> Result;
-	ProcRegisterDeviceEventEXT                                          :: #type proc "stdcall" (device: Device, pDeviceEventInfo: ^DeviceEventInfoEXT, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result;
-	ProcRegisterDisplayEventEXT                                         :: #type proc "stdcall" (device: Device, display: DisplayKHR, pDisplayEventInfo: ^DisplayEventInfoEXT, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result;
-	ProcGetSwapchainCounterEXT                                          :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, counter: SurfaceCounterFlagsEXT, pCounterValue: ^u64) -> Result;
-	ProcGetRefreshCycleDurationGOOGLE                                   :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, pDisplayTimingProperties: ^RefreshCycleDurationGOOGLE) -> Result;
-	ProcGetPastPresentationTimingGOOGLE                                 :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, pPresentationTimingCount: ^u32, pPresentationTimings: ^PastPresentationTimingGOOGLE) -> Result;
-	ProcCmdSetDiscardRectangleEXT                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstDiscardRectangle: u32, discardRectangleCount: u32, pDiscardRectangles: ^Rect2D);
-	ProcSetHdrMetadataEXT                                               :: #type proc "stdcall" (device: Device, swapchainCount: u32, pSwapchains: ^SwapchainKHR, pMetadata: ^HdrMetadataEXT);
-	ProcDebugUtilsMessengerCallbackEXT                                  :: #type proc "stdcall" (messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT, pUserData: rawptr) -> b32;
-	ProcSetDebugUtilsObjectNameEXT                                      :: #type proc "stdcall" (device: Device, pNameInfo: ^DebugUtilsObjectNameInfoEXT) -> Result;
-	ProcSetDebugUtilsObjectTagEXT                                       :: #type proc "stdcall" (device: Device, pTagInfo: ^DebugUtilsObjectTagInfoEXT) -> Result;
-	ProcQueueBeginDebugUtilsLabelEXT                                    :: #type proc "stdcall" (queue: Queue, pLabelInfo: ^DebugUtilsLabelEXT);
-	ProcQueueEndDebugUtilsLabelEXT                                      :: #type proc "stdcall" (queue: Queue);
-	ProcQueueInsertDebugUtilsLabelEXT                                   :: #type proc "stdcall" (queue: Queue, pLabelInfo: ^DebugUtilsLabelEXT);
-	ProcCmdBeginDebugUtilsLabelEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT);
-	ProcCmdEndDebugUtilsLabelEXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer);
-	ProcCmdInsertDebugUtilsLabelEXT                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT);
-	ProcCreateDebugUtilsMessengerEXT                                    :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^DebugUtilsMessengerCreateInfoEXT, pAllocator: ^AllocationCallbacks, pMessenger: ^DebugUtilsMessengerEXT) -> Result;
-	ProcDestroyDebugUtilsMessengerEXT                                   :: #type proc "stdcall" (instance: Instance, messenger: DebugUtilsMessengerEXT, pAllocator: ^AllocationCallbacks);
-	ProcSubmitDebugUtilsMessageEXT                                      :: #type proc "stdcall" (instance: Instance, messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT);
-	ProcCmdSetSampleLocationsEXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSampleLocationsInfo: ^SampleLocationsInfoEXT);
-	ProcGetPhysicalDeviceMultisamplePropertiesEXT                       :: #type proc "stdcall" (physicalDevice: PhysicalDevice, samples: SampleCountFlags, pMultisampleProperties: ^MultisamplePropertiesEXT);
-	ProcGetImageDrmFormatModifierPropertiesEXT                          :: #type proc "stdcall" (device: Device, image: Image, pProperties: ^ImageDrmFormatModifierPropertiesEXT) -> Result;
-	ProcCreateValidationCacheEXT                                        :: #type proc "stdcall" (device: Device, pCreateInfo: ^ValidationCacheCreateInfoEXT, pAllocator: ^AllocationCallbacks, pValidationCache: ^ValidationCacheEXT) -> Result;
-	ProcDestroyValidationCacheEXT                                       :: #type proc "stdcall" (device: Device, validationCache: ValidationCacheEXT, pAllocator: ^AllocationCallbacks);
-	ProcMergeValidationCachesEXT                                        :: #type proc "stdcall" (device: Device, dstCache: ValidationCacheEXT, srcCacheCount: u32, pSrcCaches: ^ValidationCacheEXT) -> Result;
-	ProcGetValidationCacheDataEXT                                       :: #type proc "stdcall" (device: Device, validationCache: ValidationCacheEXT, pDataSize: ^int, pData: rawptr) -> Result;
-	ProcCmdBindShadingRateImageNV                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, imageView: ImageView, imageLayout: ImageLayout);
-	ProcCmdSetViewportShadingRatePaletteNV                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pShadingRatePalettes: ^ShadingRatePaletteNV);
-	ProcCmdSetCoarseSampleOrderNV                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, sampleOrderType: CoarseSampleOrderTypeNV, customSampleOrderCount: u32, pCustomSampleOrders: ^CoarseSampleOrderCustomNV);
-	ProcCreateAccelerationStructureNV                                   :: #type proc "stdcall" (device: Device, pCreateInfo: ^AccelerationStructureCreateInfoNV, pAllocator: ^AllocationCallbacks, pAccelerationStructure: ^AccelerationStructureNV) -> Result;
-	ProcDestroyAccelerationStructureNV                                  :: #type proc "stdcall" (device: Device, accelerationStructure: AccelerationStructureNV, pAllocator: ^AllocationCallbacks);
-	ProcGetAccelerationStructureMemoryRequirementsNV                    :: #type proc "stdcall" (device: Device, pInfo: ^AccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ^MemoryRequirements2KHR);
-	ProcBindAccelerationStructureMemoryNV                               :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindAccelerationStructureMemoryInfoNV) -> Result;
-	ProcCmdBuildAccelerationStructureNV                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pInfo: ^AccelerationStructureInfoNV, instanceData: Buffer, instanceOffset: DeviceSize, update: b32, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratchOffset: DeviceSize);
-	ProcCmdCopyAccelerationStructureNV                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, dst: AccelerationStructureNV, src: AccelerationStructureNV, mode: CopyAccelerationStructureModeKHR);
-	ProcCmdTraceRaysNV                                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, raygenShaderBindingTableBuffer: Buffer, raygenShaderBindingOffset: DeviceSize, missShaderBindingTableBuffer: Buffer, missShaderBindingOffset: DeviceSize, missShaderBindingStride: DeviceSize, hitShaderBindingTableBuffer: Buffer, hitShaderBindingOffset: DeviceSize, hitShaderBindingStride: DeviceSize, callableShaderBindingTableBuffer: Buffer, callableShaderBindingOffset: DeviceSize, callableShaderBindingStride: DeviceSize, width: u32, height: u32, depth: u32);
-	ProcCreateRayTracingPipelinesNV                                     :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^RayTracingPipelineCreateInfoNV, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result;
-	ProcGetRayTracingShaderGroupHandlesKHR                              :: #type proc "stdcall" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result;
-	ProcGetRayTracingShaderGroupHandlesNV                               :: #type proc "stdcall" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result;
-	ProcGetAccelerationStructureHandleNV                                :: #type proc "stdcall" (device: Device, accelerationStructure: AccelerationStructureNV, dataSize: int, pData: rawptr) -> Result;
-	ProcCmdWriteAccelerationStructuresPropertiesNV                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureNV, queryType: QueryType, queryPool: QueryPool, firstQuery: u32);
-	ProcCompileDeferredNV                                               :: #type proc "stdcall" (device: Device, pipeline: Pipeline, shader: u32) -> Result;
-	ProcGetMemoryHostPointerPropertiesEXT                               :: #type proc "stdcall" (device: Device, handleType: ExternalMemoryHandleTypeFlags, pHostPointer: rawptr, pMemoryHostPointerProperties: ^MemoryHostPointerPropertiesEXT) -> Result;
-	ProcCmdWriteBufferMarkerAMD                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32);
-	ProcGetPhysicalDeviceCalibrateableTimeDomainsEXT                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pTimeDomainCount: ^u32, pTimeDomains: ^TimeDomainEXT) -> Result;
-	ProcGetCalibratedTimestampsEXT                                      :: #type proc "stdcall" (device: Device, timestampCount: u32, pTimestampInfos: ^CalibratedTimestampInfoEXT, pTimestamps: ^u64, pMaxDeviation: ^u64) -> Result;
-	ProcCmdDrawMeshTasksNV                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, taskCount: u32, firstTask: u32);
-	ProcCmdDrawMeshTasksIndirectNV                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32);
-	ProcCmdDrawMeshTasksIndirectCountNV                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCmdSetExclusiveScissorNV                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstExclusiveScissor: u32, exclusiveScissorCount: u32, pExclusiveScissors: ^Rect2D);
-	ProcCmdSetCheckpointNV                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCheckpointMarker: rawptr);
-	ProcGetQueueCheckpointDataNV                                        :: #type proc "stdcall" (queue: Queue, pCheckpointDataCount: ^u32, pCheckpointData: ^CheckpointDataNV);
-	ProcInitializePerformanceApiINTEL                                   :: #type proc "stdcall" (device: Device, pInitializeInfo: ^InitializePerformanceApiInfoINTEL) -> Result;
-	ProcUninitializePerformanceApiINTEL                                 :: #type proc "stdcall" (device: Device);
-	ProcCmdSetPerformanceMarkerINTEL                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, pMarkerInfo: ^PerformanceMarkerInfoINTEL) -> Result;
-	ProcCmdSetPerformanceStreamMarkerINTEL                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pMarkerInfo: ^PerformanceStreamMarkerInfoINTEL) -> Result;
-	ProcCmdSetPerformanceOverrideINTEL                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, pOverrideInfo: ^PerformanceOverrideInfoINTEL) -> Result;
-	ProcAcquirePerformanceConfigurationINTEL                            :: #type proc "stdcall" (device: Device, pAcquireInfo: ^PerformanceConfigurationAcquireInfoINTEL, pConfiguration: ^PerformanceConfigurationINTEL) -> Result;
-	ProcReleasePerformanceConfigurationINTEL                            :: #type proc "stdcall" (device: Device, configuration: PerformanceConfigurationINTEL) -> Result;
-	ProcQueueSetPerformanceConfigurationINTEL                           :: #type proc "stdcall" (queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result;
-	ProcGetPerformanceParameterINTEL                                    :: #type proc "stdcall" (device: Device, parameter: PerformanceParameterTypeINTEL, pValue: ^PerformanceValueINTEL) -> Result;
-	ProcSetLocalDimmingAMD                                              :: #type proc "stdcall" (device: Device, swapChain: SwapchainKHR, localDimmingEnable: b32);
-	ProcGetBufferDeviceAddressEXT                                       :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress;
-	ProcGetPhysicalDeviceToolPropertiesEXT                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pToolCount: ^u32, pToolProperties: ^PhysicalDeviceToolPropertiesEXT) -> Result;
-	ProcGetPhysicalDeviceCooperativeMatrixPropertiesNV                  :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^CooperativeMatrixPropertiesNV) -> Result;
-	ProcGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pCombinationCount: ^u32, pCombinations: ^FramebufferMixedSamplesCombinationNV) -> Result;
-	ProcCreateHeadlessSurfaceEXT                                        :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^HeadlessSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcCmdSetLineStippleEXT                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, lineStippleFactor: u32, lineStipplePattern: u16);
-	ProcResetQueryPoolEXT                                               :: #type proc "stdcall" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32);
-	ProcCmdSetCullModeEXT                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, cullMode: CullModeFlags);
-	ProcCmdSetFrontFaceEXT                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, frontFace: FrontFace);
-	ProcCmdSetPrimitiveTopologyEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, primitiveTopology: PrimitiveTopology);
-	ProcCmdSetViewportWithCountEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, viewportCount: u32, pViewports: ^Viewport);
-	ProcCmdSetScissorWithCountEXT                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, scissorCount: u32, pScissors: ^Rect2D);
-	ProcCmdBindVertexBuffers2EXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize, pSizes: ^DeviceSize, pStrides: ^DeviceSize);
-	ProcCmdSetDepthTestEnableEXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthTestEnable: b32);
-	ProcCmdSetDepthWriteEnableEXT                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthWriteEnable: b32);
-	ProcCmdSetDepthCompareOpEXT                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthCompareOp: CompareOp);
-	ProcCmdSetDepthBoundsTestEnableEXT                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthBoundsTestEnable: b32);
-	ProcCmdSetStencilTestEnableEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, stencilTestEnable: b32);
-	ProcCmdSetStencilOpEXT                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, failOp: StencilOp, passOp: StencilOp, depthFailOp: StencilOp, compareOp: CompareOp);
-	ProcGetGeneratedCommandsMemoryRequirementsNV                        :: #type proc "stdcall" (device: Device, pInfo: ^GeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ^MemoryRequirements2);
-	ProcCmdPreprocessGeneratedCommandsNV                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV);
-	ProcCmdExecuteGeneratedCommandsNV                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, isPreprocessed: b32, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV);
-	ProcCmdBindPipelineShaderGroupNV                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline, groupIndex: u32);
-	ProcCreateIndirectCommandsLayoutNV                                  :: #type proc "stdcall" (device: Device, pCreateInfo: ^IndirectCommandsLayoutCreateInfoNV, pAllocator: ^AllocationCallbacks, pIndirectCommandsLayout: ^IndirectCommandsLayoutNV) -> Result;
-	ProcDestroyIndirectCommandsLayoutNV                                 :: #type proc "stdcall" (device: Device, indirectCommandsLayout: IndirectCommandsLayoutNV, pAllocator: ^AllocationCallbacks);
-	ProcDeviceMemoryReportCallbackEXT                                   :: #type proc "stdcall" (pCallbackData: ^DeviceMemoryReportCallbackDataEXT, pUserData: rawptr);
-	ProcAcquireDrmDisplayEXT                                            :: #type proc "stdcall" (physicalDevice: PhysicalDevice, drmFd: i32, display: DisplayKHR) -> Result;
-	ProcGetDrmDisplayEXT                                                :: #type proc "stdcall" (physicalDevice: PhysicalDevice, drmFd: i32, connectorId: u32, display: ^DisplayKHR) -> Result;
-	ProcCreatePrivateDataSlotEXT                                        :: #type proc "stdcall" (device: Device, pCreateInfo: ^PrivateDataSlotCreateInfoEXT, pAllocator: ^AllocationCallbacks, pPrivateDataSlot: ^PrivateDataSlotEXT) -> Result;
-	ProcDestroyPrivateDataSlotEXT                                       :: #type proc "stdcall" (device: Device, privateDataSlot: PrivateDataSlotEXT, pAllocator: ^AllocationCallbacks);
-	ProcSetPrivateDataEXT                                               :: #type proc "stdcall" (device: Device, objectType: ObjectType, objectHandle: u64, privateDataSlot: PrivateDataSlotEXT, data: u64) -> Result;
-	ProcGetPrivateDataEXT                                               :: #type proc "stdcall" (device: Device, objectType: ObjectType, objectHandle: u64, privateDataSlot: PrivateDataSlotEXT, pData: ^u64);
-	ProcCmdSetFragmentShadingRateEnumNV                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, shadingRate: FragmentShadingRateNV);
-	ProcAcquireWinrtDisplayNV                                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result;
-	ProcGetWinrtDisplayNV                                               :: #type proc "stdcall" (physicalDevice: PhysicalDevice, deviceRelativeId: u32, pDisplay: ^DisplayKHR) -> Result;
-	ProcCmdSetVertexInputEXT                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, vertexBindingDescriptionCount: u32, pVertexBindingDescriptions: ^VertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: u32, pVertexAttributeDescriptions: ^VertexInputAttributeDescription2EXT);
-	ProcGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI                   :: #type proc "stdcall" (device: Device, renderpass: RenderPass, pMaxWorkgroupSize: ^Extent2D) -> Result;
-	ProcCmdSubpassShadingHUAWEI                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer);
-	ProcCmdBindInvocationMaskHUAWEI                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, imageView: ImageView, imageLayout: ImageLayout);
-	ProcGetMemoryRemoteAddressNV                                        :: #type proc "stdcall" (device: Device, pMemoryGetRemoteAddressInfo: ^MemoryGetRemoteAddressInfoNV, pAddress: ^RemoteAddressNV) -> Result;
-	ProcCmdSetPatchControlPointsEXT                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, patchControlPoints: u32);
-	ProcCmdSetRasterizerDiscardEnableEXT                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, rasterizerDiscardEnable: b32);
-	ProcCmdSetDepthBiasEnableEXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthBiasEnable: b32);
-	ProcCmdSetLogicOpEXT                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, logicOp: LogicOp);
-	ProcCmdSetPrimitiveRestartEnableEXT                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, primitiveRestartEnable: b32);
-	ProcCmdDrawMultiEXT                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, drawCount: u32, pVertexInfo: ^MultiDrawInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32);
-	ProcCmdDrawMultiIndexedEXT                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, drawCount: u32, pIndexInfo: ^MultiDrawIndexedInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32, pVertexOffset: ^i32);
-	ProcCreateAccelerationStructureKHR                                  :: #type proc "stdcall" (device: Device, pCreateInfo: ^AccelerationStructureCreateInfoKHR, pAllocator: ^AllocationCallbacks, pAccelerationStructure: ^AccelerationStructureKHR) -> Result;
-	ProcDestroyAccelerationStructureKHR                                 :: #type proc "stdcall" (device: Device, accelerationStructure: AccelerationStructureKHR, pAllocator: ^AllocationCallbacks);
-	ProcCmdBuildAccelerationStructuresKHR                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^^AccelerationStructureBuildRangeInfoKHR);
-	ProcCmdBuildAccelerationStructuresIndirectKHR                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ^DeviceAddress, pIndirectStrides: ^u32, ppMaxPrimitiveCounts: ^^u32);
-	ProcBuildAccelerationStructuresKHR                                  :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^^AccelerationStructureBuildRangeInfoKHR) -> Result;
-	ProcCopyAccelerationStructureKHR                                    :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureInfoKHR) -> Result;
-	ProcCopyAccelerationStructureToMemoryKHR                            :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR) -> Result;
-	ProcCopyMemoryToAccelerationStructureKHR                            :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyMemoryToAccelerationStructureInfoKHR) -> Result;
-	ProcWriteAccelerationStructuresPropertiesKHR                        :: #type proc "stdcall" (device: Device, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureKHR, queryType: QueryType, dataSize: int, pData: rawptr, stride: int) -> Result;
-	ProcCmdCopyAccelerationStructureKHR                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureInfoKHR);
-	ProcCmdCopyAccelerationStructureToMemoryKHR                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR);
-	ProcCmdCopyMemoryToAccelerationStructureKHR                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pInfo: ^CopyMemoryToAccelerationStructureInfoKHR);
-	ProcGetAccelerationStructureDeviceAddressKHR                        :: #type proc "stdcall" (device: Device, pInfo: ^AccelerationStructureDeviceAddressInfoKHR) -> DeviceAddress;
-	ProcCmdWriteAccelerationStructuresPropertiesKHR                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureKHR, queryType: QueryType, queryPool: QueryPool, firstQuery: u32);
-	ProcGetDeviceAccelerationStructureCompatibilityKHR                  :: #type proc "stdcall" (device: Device, pVersionInfo: ^AccelerationStructureVersionInfoKHR, pCompatibility: ^AccelerationStructureCompatibilityKHR);
-	ProcGetAccelerationStructureBuildSizesKHR                           :: #type proc "stdcall" (device: Device, buildType: AccelerationStructureBuildTypeKHR, pBuildInfo: ^AccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ^u32, pSizeInfo: ^AccelerationStructureBuildSizesInfoKHR);
-	ProcCmdTraceRaysKHR                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRaygenShaderBindingTable: ^StridedDeviceAddressRegionKHR, pMissShaderBindingTable: ^StridedDeviceAddressRegionKHR, pHitShaderBindingTable: ^StridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ^StridedDeviceAddressRegionKHR, width: u32, height: u32, depth: u32);
-	ProcCreateRayTracingPipelinesKHR                                    :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^RayTracingPipelineCreateInfoKHR, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result;
-	ProcGetRayTracingCaptureReplayShaderGroupHandlesKHR                 :: #type proc "stdcall" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result;
-	ProcCmdTraceRaysIndirectKHR                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRaygenShaderBindingTable: ^StridedDeviceAddressRegionKHR, pMissShaderBindingTable: ^StridedDeviceAddressRegionKHR, pHitShaderBindingTable: ^StridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ^StridedDeviceAddressRegionKHR, indirectDeviceAddress: DeviceAddress);
-	ProcGetRayTracingShaderGroupStackSizeKHR                            :: #type proc "stdcall" (device: Device, pipeline: Pipeline, group: u32, groupShader: ShaderGroupShaderKHR) -> DeviceSize;
-	ProcCmdSetRayTracingPipelineStackSizeKHR                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineStackSize: u32);
-	ProcCreateWin32SurfaceKHR                                           :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^Win32SurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcGetPhysicalDeviceWin32PresentationSupportKHR                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32) -> b32;
-	ProcGetMemoryWin32HandleKHR                                         :: #type proc "stdcall" (device: Device, pGetWin32HandleInfo: ^MemoryGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result;
-	ProcGetMemoryWin32HandlePropertiesKHR                               :: #type proc "stdcall" (device: Device, handleType: ExternalMemoryHandleTypeFlags, handle: HANDLE, pMemoryWin32HandleProperties: ^MemoryWin32HandlePropertiesKHR) -> Result;
-	ProcImportSemaphoreWin32HandleKHR                                   :: #type proc "stdcall" (device: Device, pImportSemaphoreWin32HandleInfo: ^ImportSemaphoreWin32HandleInfoKHR) -> Result;
-	ProcGetSemaphoreWin32HandleKHR                                      :: #type proc "stdcall" (device: Device, pGetWin32HandleInfo: ^SemaphoreGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result;
-	ProcImportFenceWin32HandleKHR                                       :: #type proc "stdcall" (device: Device, pImportFenceWin32HandleInfo: ^ImportFenceWin32HandleInfoKHR) -> Result;
-	ProcGetFenceWin32HandleKHR                                          :: #type proc "stdcall" (device: Device, pGetWin32HandleInfo: ^FenceGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result;
-	ProcGetMemoryWin32HandleNV                                          :: #type proc "stdcall" (device: Device, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlagsNV, pHandle: ^HANDLE) -> Result;
-	ProcGetPhysicalDeviceSurfacePresentModes2EXT                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pPresentModeCount: ^u32, pPresentModes: ^PresentModeKHR) -> Result;
-	ProcAcquireFullScreenExclusiveModeEXT                               :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR) -> Result;
-	ProcReleaseFullScreenExclusiveModeEXT                               :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR) -> Result;
-	ProcGetDeviceGroupSurfacePresentModes2EXT                           :: #type proc "stdcall" (device: Device, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pModes: ^DeviceGroupPresentModeFlagsKHR) -> Result;
-	ProcCreateMetalSurfaceEXT                                           :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^MetalSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcCreateMacOSSurfaceMVK                                           :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^MacOSSurfaceCreateInfoMVK, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcCreateIOSSurfaceMVK                                             :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^IOSSurfaceCreateInfoMVK, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
+	ProcAllocationFunction                                              :: #type proc "stdcall" (pUserData: rawptr, size: int, alignment: int, allocationScope: SystemAllocationScope) -> rawptr
+	ProcFreeFunction                                                    :: #type proc "stdcall" (pUserData: rawptr, pMemory: rawptr)
+	ProcInternalAllocationNotification                                  :: #type proc "stdcall" (pUserData: rawptr, size: int, allocationType: InternalAllocationType, allocationScope: SystemAllocationScope)
+	ProcInternalFreeNotification                                        :: #type proc "stdcall" (pUserData: rawptr, size: int, allocationType: InternalAllocationType, allocationScope: SystemAllocationScope)
+	ProcReallocationFunction                                            :: #type proc "stdcall" (pUserData: rawptr, pOriginal: rawptr, size: int, alignment: int, allocationScope: SystemAllocationScope) -> rawptr
+	ProcVoidFunction                                                    :: #type proc "stdcall" ()
+	ProcCreateInstance                                                  :: #type proc "stdcall" (pCreateInfo: ^InstanceCreateInfo, pAllocator: ^AllocationCallbacks, pInstance: ^Instance) -> Result
+	ProcDestroyInstance                                                 :: #type proc "stdcall" (instance: Instance, pAllocator: ^AllocationCallbacks)
+	ProcEnumeratePhysicalDevices                                        :: #type proc "stdcall" (instance: Instance, pPhysicalDeviceCount: ^u32, pPhysicalDevices: ^PhysicalDevice) -> Result
+	ProcGetPhysicalDeviceFeatures                                       :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures)
+	ProcGetPhysicalDeviceFormatProperties                               :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties)
+	ProcGetPhysicalDeviceImageFormatProperties                          :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, pImageFormatProperties: ^ImageFormatProperties) -> Result
+	ProcGetPhysicalDeviceProperties                                     :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties)
+	ProcGetPhysicalDeviceQueueFamilyProperties                          :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties)
+	ProcGetPhysicalDeviceMemoryProperties                               :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties)
+	ProcGetInstanceProcAddr                                             :: #type proc "stdcall" (instance: Instance, pName: cstring) -> ProcVoidFunction
+	ProcGetDeviceProcAddr                                               :: #type proc "stdcall" (device: Device, pName: cstring) -> ProcVoidFunction
+	ProcCreateDevice                                                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pCreateInfo: ^DeviceCreateInfo, pAllocator: ^AllocationCallbacks, pDevice: ^Device) -> Result
+	ProcDestroyDevice                                                   :: #type proc "stdcall" (device: Device, pAllocator: ^AllocationCallbacks)
+	ProcEnumerateInstanceExtensionProperties                            :: #type proc "stdcall" (pLayerName: cstring, pPropertyCount: ^u32, pProperties: ^ExtensionProperties) -> Result
+	ProcEnumerateDeviceExtensionProperties                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pLayerName: cstring, pPropertyCount: ^u32, pProperties: ^ExtensionProperties) -> Result
+	ProcEnumerateInstanceLayerProperties                                :: #type proc "stdcall" (pPropertyCount: ^u32, pProperties: ^LayerProperties) -> Result
+	ProcEnumerateDeviceLayerProperties                                  :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^LayerProperties) -> Result
+	ProcGetDeviceQueue                                                  :: #type proc "stdcall" (device: Device, queueFamilyIndex: u32, queueIndex: u32, pQueue: ^Queue)
+	ProcQueueSubmit                                                     :: #type proc "stdcall" (queue: Queue, submitCount: u32, pSubmits: ^SubmitInfo, fence: Fence) -> Result
+	ProcQueueWaitIdle                                                   :: #type proc "stdcall" (queue: Queue) -> Result
+	ProcDeviceWaitIdle                                                  :: #type proc "stdcall" (device: Device) -> Result
+	ProcAllocateMemory                                                  :: #type proc "stdcall" (device: Device, pAllocateInfo: ^MemoryAllocateInfo, pAllocator: ^AllocationCallbacks, pMemory: ^DeviceMemory) -> Result
+	ProcFreeMemory                                                      :: #type proc "stdcall" (device: Device, memory: DeviceMemory, pAllocator: ^AllocationCallbacks)
+	ProcMapMemory                                                       :: #type proc "stdcall" (device: Device, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, flags: MemoryMapFlags, ppData: ^rawptr) -> Result
+	ProcUnmapMemory                                                     :: #type proc "stdcall" (device: Device, memory: DeviceMemory)
+	ProcFlushMappedMemoryRanges                                         :: #type proc "stdcall" (device: Device, memoryRangeCount: u32, pMemoryRanges: ^MappedMemoryRange) -> Result
+	ProcInvalidateMappedMemoryRanges                                    :: #type proc "stdcall" (device: Device, memoryRangeCount: u32, pMemoryRanges: ^MappedMemoryRange) -> Result
+	ProcGetDeviceMemoryCommitment                                       :: #type proc "stdcall" (device: Device, memory: DeviceMemory, pCommittedMemoryInBytes: ^DeviceSize)
+	ProcBindBufferMemory                                                :: #type proc "stdcall" (device: Device, buffer: Buffer, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result
+	ProcBindImageMemory                                                 :: #type proc "stdcall" (device: Device, image: Image, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result
+	ProcGetBufferMemoryRequirements                                     :: #type proc "stdcall" (device: Device, buffer: Buffer, pMemoryRequirements: ^MemoryRequirements)
+	ProcGetImageMemoryRequirements                                      :: #type proc "stdcall" (device: Device, image: Image, pMemoryRequirements: ^MemoryRequirements)
+	ProcGetImageSparseMemoryRequirements                                :: #type proc "stdcall" (device: Device, image: Image, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements)
+	ProcGetPhysicalDeviceSparseImageFormatProperties                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, samples: SampleCountFlags, usage: ImageUsageFlags, tiling: ImageTiling, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties)
+	ProcQueueBindSparse                                                 :: #type proc "stdcall" (queue: Queue, bindInfoCount: u32, pBindInfo: ^BindSparseInfo, fence: Fence) -> Result
+	ProcCreateFence                                                     :: #type proc "stdcall" (device: Device, pCreateInfo: ^FenceCreateInfo, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result
+	ProcDestroyFence                                                    :: #type proc "stdcall" (device: Device, fence: Fence, pAllocator: ^AllocationCallbacks)
+	ProcResetFences                                                     :: #type proc "stdcall" (device: Device, fenceCount: u32, pFences: ^Fence) -> Result
+	ProcGetFenceStatus                                                  :: #type proc "stdcall" (device: Device, fence: Fence) -> Result
+	ProcWaitForFences                                                   :: #type proc "stdcall" (device: Device, fenceCount: u32, pFences: ^Fence, waitAll: b32, timeout: u64) -> Result
+	ProcCreateSemaphore                                                 :: #type proc "stdcall" (device: Device, pCreateInfo: ^SemaphoreCreateInfo, pAllocator: ^AllocationCallbacks, pSemaphore: ^Semaphore) -> Result
+	ProcDestroySemaphore                                                :: #type proc "stdcall" (device: Device, semaphore: Semaphore, pAllocator: ^AllocationCallbacks)
+	ProcCreateEvent                                                     :: #type proc "stdcall" (device: Device, pCreateInfo: ^EventCreateInfo, pAllocator: ^AllocationCallbacks, pEvent: ^Event) -> Result
+	ProcDestroyEvent                                                    :: #type proc "stdcall" (device: Device, event: Event, pAllocator: ^AllocationCallbacks)
+	ProcGetEventStatus                                                  :: #type proc "stdcall" (device: Device, event: Event) -> Result
+	ProcSetEvent                                                        :: #type proc "stdcall" (device: Device, event: Event) -> Result
+	ProcResetEvent                                                      :: #type proc "stdcall" (device: Device, event: Event) -> Result
+	ProcCreateQueryPool                                                 :: #type proc "stdcall" (device: Device, pCreateInfo: ^QueryPoolCreateInfo, pAllocator: ^AllocationCallbacks, pQueryPool: ^QueryPool) -> Result
+	ProcDestroyQueryPool                                                :: #type proc "stdcall" (device: Device, queryPool: QueryPool, pAllocator: ^AllocationCallbacks)
+	ProcGetQueryPoolResults                                             :: #type proc "stdcall" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dataSize: int, pData: rawptr, stride: DeviceSize, flags: QueryResultFlags) -> Result
+	ProcCreateBuffer                                                    :: #type proc "stdcall" (device: Device, pCreateInfo: ^BufferCreateInfo, pAllocator: ^AllocationCallbacks, pBuffer: ^Buffer) -> Result
+	ProcDestroyBuffer                                                   :: #type proc "stdcall" (device: Device, buffer: Buffer, pAllocator: ^AllocationCallbacks)
+	ProcCreateBufferView                                                :: #type proc "stdcall" (device: Device, pCreateInfo: ^BufferViewCreateInfo, pAllocator: ^AllocationCallbacks, pView: ^BufferView) -> Result
+	ProcDestroyBufferView                                               :: #type proc "stdcall" (device: Device, bufferView: BufferView, pAllocator: ^AllocationCallbacks)
+	ProcCreateImage                                                     :: #type proc "stdcall" (device: Device, pCreateInfo: ^ImageCreateInfo, pAllocator: ^AllocationCallbacks, pImage: ^Image) -> Result
+	ProcDestroyImage                                                    :: #type proc "stdcall" (device: Device, image: Image, pAllocator: ^AllocationCallbacks)
+	ProcGetImageSubresourceLayout                                       :: #type proc "stdcall" (device: Device, image: Image, pSubresource: ^ImageSubresource, pLayout: ^SubresourceLayout)
+	ProcCreateImageView                                                 :: #type proc "stdcall" (device: Device, pCreateInfo: ^ImageViewCreateInfo, pAllocator: ^AllocationCallbacks, pView: ^ImageView) -> Result
+	ProcDestroyImageView                                                :: #type proc "stdcall" (device: Device, imageView: ImageView, pAllocator: ^AllocationCallbacks)
+	ProcCreateShaderModule                                              :: #type proc "stdcall" (device: Device, pCreateInfo: ^ShaderModuleCreateInfo, pAllocator: ^AllocationCallbacks, pShaderModule: ^ShaderModule) -> Result
+	ProcDestroyShaderModule                                             :: #type proc "stdcall" (device: Device, shaderModule: ShaderModule, pAllocator: ^AllocationCallbacks)
+	ProcCreatePipelineCache                                             :: #type proc "stdcall" (device: Device, pCreateInfo: ^PipelineCacheCreateInfo, pAllocator: ^AllocationCallbacks, pPipelineCache: ^PipelineCache) -> Result
+	ProcDestroyPipelineCache                                            :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, pAllocator: ^AllocationCallbacks)
+	ProcGetPipelineCacheData                                            :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, pDataSize: ^int, pData: rawptr) -> Result
+	ProcMergePipelineCaches                                             :: #type proc "stdcall" (device: Device, dstCache: PipelineCache, srcCacheCount: u32, pSrcCaches: ^PipelineCache) -> Result
+	ProcCreateGraphicsPipelines                                         :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^GraphicsPipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result
+	ProcCreateComputePipelines                                          :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^ComputePipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result
+	ProcDestroyPipeline                                                 :: #type proc "stdcall" (device: Device, pipeline: Pipeline, pAllocator: ^AllocationCallbacks)
+	ProcCreatePipelineLayout                                            :: #type proc "stdcall" (device: Device, pCreateInfo: ^PipelineLayoutCreateInfo, pAllocator: ^AllocationCallbacks, pPipelineLayout: ^PipelineLayout) -> Result
+	ProcDestroyPipelineLayout                                           :: #type proc "stdcall" (device: Device, pipelineLayout: PipelineLayout, pAllocator: ^AllocationCallbacks)
+	ProcCreateSampler                                                   :: #type proc "stdcall" (device: Device, pCreateInfo: ^SamplerCreateInfo, pAllocator: ^AllocationCallbacks, pSampler: ^Sampler) -> Result
+	ProcDestroySampler                                                  :: #type proc "stdcall" (device: Device, sampler: Sampler, pAllocator: ^AllocationCallbacks)
+	ProcCreateDescriptorSetLayout                                       :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pAllocator: ^AllocationCallbacks, pSetLayout: ^DescriptorSetLayout) -> Result
+	ProcDestroyDescriptorSetLayout                                      :: #type proc "stdcall" (device: Device, descriptorSetLayout: DescriptorSetLayout, pAllocator: ^AllocationCallbacks)
+	ProcCreateDescriptorPool                                            :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorPoolCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorPool: ^DescriptorPool) -> Result
+	ProcDestroyDescriptorPool                                           :: #type proc "stdcall" (device: Device, descriptorPool: DescriptorPool, pAllocator: ^AllocationCallbacks)
+	ProcResetDescriptorPool                                             :: #type proc "stdcall" (device: Device, descriptorPool: DescriptorPool, flags: DescriptorPoolResetFlags) -> Result
+	ProcAllocateDescriptorSets                                          :: #type proc "stdcall" (device: Device, pAllocateInfo: ^DescriptorSetAllocateInfo, pDescriptorSets: ^DescriptorSet) -> Result
+	ProcFreeDescriptorSets                                              :: #type proc "stdcall" (device: Device, descriptorPool: DescriptorPool, descriptorSetCount: u32, pDescriptorSets: ^DescriptorSet) -> Result
+	ProcUpdateDescriptorSets                                            :: #type proc "stdcall" (device: Device, descriptorWriteCount: u32, pDescriptorWrites: ^WriteDescriptorSet, descriptorCopyCount: u32, pDescriptorCopies: ^CopyDescriptorSet)
+	ProcCreateFramebuffer                                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^FramebufferCreateInfo, pAllocator: ^AllocationCallbacks, pFramebuffer: ^Framebuffer) -> Result
+	ProcDestroyFramebuffer                                              :: #type proc "stdcall" (device: Device, framebuffer: Framebuffer, pAllocator: ^AllocationCallbacks)
+	ProcCreateRenderPass                                                :: #type proc "stdcall" (device: Device, pCreateInfo: ^RenderPassCreateInfo, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result
+	ProcDestroyRenderPass                                               :: #type proc "stdcall" (device: Device, renderPass: RenderPass, pAllocator: ^AllocationCallbacks)
+	ProcGetRenderAreaGranularity                                        :: #type proc "stdcall" (device: Device, renderPass: RenderPass, pGranularity: ^Extent2D)
+	ProcCreateCommandPool                                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^CommandPoolCreateInfo, pAllocator: ^AllocationCallbacks, pCommandPool: ^CommandPool) -> Result
+	ProcDestroyCommandPool                                              :: #type proc "stdcall" (device: Device, commandPool: CommandPool, pAllocator: ^AllocationCallbacks)
+	ProcResetCommandPool                                                :: #type proc "stdcall" (device: Device, commandPool: CommandPool, flags: CommandPoolResetFlags) -> Result
+	ProcAllocateCommandBuffers                                          :: #type proc "stdcall" (device: Device, pAllocateInfo: ^CommandBufferAllocateInfo, pCommandBuffers: ^CommandBuffer) -> Result
+	ProcFreeCommandBuffers                                              :: #type proc "stdcall" (device: Device, commandPool: CommandPool, commandBufferCount: u32, pCommandBuffers: ^CommandBuffer)
+	ProcBeginCommandBuffer                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pBeginInfo: ^CommandBufferBeginInfo) -> Result
+	ProcEndCommandBuffer                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer) -> Result
+	ProcResetCommandBuffer                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, flags: CommandBufferResetFlags) -> Result
+	ProcCmdBindPipeline                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline)
+	ProcCmdSetViewport                                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewports: ^Viewport)
+	ProcCmdSetScissor                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstScissor: u32, scissorCount: u32, pScissors: ^Rect2D)
+	ProcCmdSetLineWidth                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, lineWidth: f32)
+	ProcCmdSetDepthBias                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32)
+	ProcCmdSetBlendConstants                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer)
+	ProcCmdSetDepthBounds                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, minDepthBounds: f32, maxDepthBounds: f32)
+	ProcCmdSetStencilCompareMask                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, compareMask: u32)
+	ProcCmdSetStencilWriteMask                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, writeMask: u32)
+	ProcCmdSetStencilReference                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, reference: u32)
+	ProcCmdBindDescriptorSets                                           :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, firstSet: u32, descriptorSetCount: u32, pDescriptorSets: ^DescriptorSet, dynamicOffsetCount: u32, pDynamicOffsets: ^u32)
+	ProcCmdBindIndexBuffer                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, indexType: IndexType)
+	ProcCmdBindVertexBuffers                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize)
+	ProcCmdDraw                                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32)
+	ProcCmdDrawIndexed                                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, indexCount: u32, instanceCount: u32, firstIndex: u32, vertexOffset: i32, firstInstance: u32)
+	ProcCmdDrawIndirect                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32)
+	ProcCmdDrawIndexedIndirect                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32)
+	ProcCmdDispatch                                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
+	ProcCmdDispatchIndirect                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize)
+	ProcCmdCopyBuffer                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstBuffer: Buffer, regionCount: u32, pRegions: ^BufferCopy)
+	ProcCmdCopyImage                                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageCopy)
+	ProcCmdBlitImage                                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageBlit, filter: Filter)
+	ProcCmdCopyBufferToImage                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^BufferImageCopy)
+	ProcCmdCopyImageToBuffer                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstBuffer: Buffer, regionCount: u32, pRegions: ^BufferImageCopy)
+	ProcCmdUpdateBuffer                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, dataSize: DeviceSize, pData: rawptr)
+	ProcCmdFillBuffer                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, size: DeviceSize, data: u32)
+	ProcCmdClearColorImage                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pColor: ^ClearColorValue, rangeCount: u32, pRanges: ^ImageSubresourceRange)
+	ProcCmdClearDepthStencilImage                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pDepthStencil: ^ClearDepthStencilValue, rangeCount: u32, pRanges: ^ImageSubresourceRange)
+	ProcCmdClearAttachments                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, attachmentCount: u32, pAttachments: ^ClearAttachment, rectCount: u32, pRects: ^ClearRect)
+	ProcCmdResolveImage                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageResolve)
+	ProcCmdSetEvent                                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags)
+	ProcCmdResetEvent                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags)
+	ProcCmdWaitEvents                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, eventCount: u32, pEvents: ^Event, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, memoryBarrierCount: u32, pMemoryBarriers: ^MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: ^BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: ^ImageMemoryBarrier)
+	ProcCmdPipelineBarrier                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, dependencyFlags: DependencyFlags, memoryBarrierCount: u32, pMemoryBarriers: ^MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: ^BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: ^ImageMemoryBarrier)
+	ProcCmdBeginQuery                                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags)
+	ProcCmdEndQuery                                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32)
+	ProcCmdResetQueryPool                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32)
+	ProcCmdWriteTimestamp                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, queryPool: QueryPool, query: u32)
+	ProcCmdCopyQueryPoolResults                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dstBuffer: Buffer, dstOffset: DeviceSize, stride: DeviceSize, flags: QueryResultFlags)
+	ProcCmdPushConstants                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, layout: PipelineLayout, stageFlags: ShaderStageFlags, offset: u32, size: u32, pValues: rawptr)
+	ProcCmdBeginRenderPass                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, contents: SubpassContents)
+	ProcCmdNextSubpass                                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, contents: SubpassContents)
+	ProcCmdEndRenderPass                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer)
+	ProcCmdExecuteCommands                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, commandBufferCount: u32, pCommandBuffers: ^CommandBuffer)
+	ProcEnumerateInstanceVersion                                        :: #type proc "stdcall" (pApiVersion: ^u32) -> Result
+	ProcBindBufferMemory2                                               :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindBufferMemoryInfo) -> Result
+	ProcBindImageMemory2                                                :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindImageMemoryInfo) -> Result
+	ProcGetDeviceGroupPeerMemoryFeatures                                :: #type proc "stdcall" (device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: ^PeerMemoryFeatureFlags)
+	ProcCmdSetDeviceMask                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, deviceMask: u32)
+	ProcCmdDispatchBase                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
+	ProcEnumeratePhysicalDeviceGroups                                   :: #type proc "stdcall" (instance: Instance, pPhysicalDeviceGroupCount: ^u32, pPhysicalDeviceGroupProperties: ^PhysicalDeviceGroupProperties) -> Result
+	ProcGetImageMemoryRequirements2                                     :: #type proc "stdcall" (device: Device, pInfo: ^ImageMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2)
+	ProcGetBufferMemoryRequirements2                                    :: #type proc "stdcall" (device: Device, pInfo: ^BufferMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2)
+	ProcGetImageSparseMemoryRequirements2                               :: #type proc "stdcall" (device: Device, pInfo: ^ImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements2)
+	ProcGetPhysicalDeviceFeatures2                                      :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures2)
+	ProcGetPhysicalDeviceProperties2                                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties2)
+	ProcGetPhysicalDeviceFormatProperties2                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties2)
+	ProcGetPhysicalDeviceImageFormatProperties2                         :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pImageFormatInfo: ^PhysicalDeviceImageFormatInfo2, pImageFormatProperties: ^ImageFormatProperties2) -> Result
+	ProcGetPhysicalDeviceQueueFamilyProperties2                         :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties2)
+	ProcGetPhysicalDeviceMemoryProperties2                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties2)
+	ProcGetPhysicalDeviceSparseImageFormatProperties2                   :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFormatInfo: ^PhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties2)
+	ProcTrimCommandPool                                                 :: #type proc "stdcall" (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags)
+	ProcGetDeviceQueue2                                                 :: #type proc "stdcall" (device: Device, pQueueInfo: ^DeviceQueueInfo2, pQueue: ^Queue)
+	ProcCreateSamplerYcbcrConversion                                    :: #type proc "stdcall" (device: Device, pCreateInfo: ^SamplerYcbcrConversionCreateInfo, pAllocator: ^AllocationCallbacks, pYcbcrConversion: ^SamplerYcbcrConversion) -> Result
+	ProcDestroySamplerYcbcrConversion                                   :: #type proc "stdcall" (device: Device, ycbcrConversion: SamplerYcbcrConversion, pAllocator: ^AllocationCallbacks)
+	ProcCreateDescriptorUpdateTemplate                                  :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result
+	ProcDestroyDescriptorUpdateTemplate                                 :: #type proc "stdcall" (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplate, pAllocator: ^AllocationCallbacks)
+	ProcUpdateDescriptorSetWithTemplate                                 :: #type proc "stdcall" (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplate, pData: rawptr)
+	ProcGetPhysicalDeviceExternalBufferProperties                       :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalBufferInfo: ^PhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ^ExternalBufferProperties)
+	ProcGetPhysicalDeviceExternalFenceProperties                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalFenceInfo: ^PhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ^ExternalFenceProperties)
+	ProcGetPhysicalDeviceExternalSemaphoreProperties                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalSemaphoreInfo: ^PhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ^ExternalSemaphoreProperties)
+	ProcGetDescriptorSetLayoutSupport                                   :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pSupport: ^DescriptorSetLayoutSupport)
+	ProcCmdDrawIndirectCount                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCmdDrawIndexedIndirectCount                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCreateRenderPass2                                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^RenderPassCreateInfo2, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result
+	ProcCmdBeginRenderPass2                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, pSubpassBeginInfo: ^SubpassBeginInfo)
+	ProcCmdNextSubpass2                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo)
+	ProcCmdEndRenderPass2                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSubpassEndInfo: ^SubpassEndInfo)
+	ProcResetQueryPool                                                  :: #type proc "stdcall" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32)
+	ProcGetSemaphoreCounterValue                                        :: #type proc "stdcall" (device: Device, semaphore: Semaphore, pValue: ^u64) -> Result
+	ProcWaitSemaphores                                                  :: #type proc "stdcall" (device: Device, pWaitInfo: ^SemaphoreWaitInfo, timeout: u64) -> Result
+	ProcSignalSemaphore                                                 :: #type proc "stdcall" (device: Device, pSignalInfo: ^SemaphoreSignalInfo) -> Result
+	ProcGetBufferDeviceAddress                                          :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress
+	ProcGetBufferOpaqueCaptureAddress                                   :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> u64
+	ProcGetDeviceMemoryOpaqueCaptureAddress                             :: #type proc "stdcall" (device: Device, pInfo: ^DeviceMemoryOpaqueCaptureAddressInfo) -> u64
+	ProcDestroySurfaceKHR                                               :: #type proc "stdcall" (instance: Instance, surface: SurfaceKHR, pAllocator: ^AllocationCallbacks)
+	ProcGetPhysicalDeviceSurfaceSupportKHR                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, surface: SurfaceKHR, pSupported: ^b32) -> Result
+	ProcGetPhysicalDeviceSurfaceCapabilitiesKHR                         :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: ^SurfaceCapabilitiesKHR) -> Result
+	ProcGetPhysicalDeviceSurfaceFormatsKHR                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceFormatCount: ^u32, pSurfaceFormats: ^SurfaceFormatKHR) -> Result
+	ProcGetPhysicalDeviceSurfacePresentModesKHR                         :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pPresentModeCount: ^u32, pPresentModes: ^PresentModeKHR) -> Result
+	ProcCreateSwapchainKHR                                              :: #type proc "stdcall" (device: Device, pCreateInfo: ^SwapchainCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSwapchain: ^SwapchainKHR) -> Result
+	ProcDestroySwapchainKHR                                             :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, pAllocator: ^AllocationCallbacks)
+	ProcGetSwapchainImagesKHR                                           :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, pSwapchainImageCount: ^u32, pSwapchainImages: ^Image) -> Result
+	ProcAcquireNextImageKHR                                             :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence, pImageIndex: ^u32) -> Result
+	ProcQueuePresentKHR                                                 :: #type proc "stdcall" (queue: Queue, pPresentInfo: ^PresentInfoKHR) -> Result
+	ProcGetDeviceGroupPresentCapabilitiesKHR                            :: #type proc "stdcall" (device: Device, pDeviceGroupPresentCapabilities: ^DeviceGroupPresentCapabilitiesKHR) -> Result
+	ProcGetDeviceGroupSurfacePresentModesKHR                            :: #type proc "stdcall" (device: Device, surface: SurfaceKHR, pModes: ^DeviceGroupPresentModeFlagsKHR) -> Result
+	ProcGetPhysicalDevicePresentRectanglesKHR                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pRectCount: ^u32, pRects: ^Rect2D) -> Result
+	ProcAcquireNextImage2KHR                                            :: #type proc "stdcall" (device: Device, pAcquireInfo: ^AcquireNextImageInfoKHR, pImageIndex: ^u32) -> Result
+	ProcGetPhysicalDeviceDisplayPropertiesKHR                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPropertiesKHR) -> Result
+	ProcGetPhysicalDeviceDisplayPlanePropertiesKHR                      :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPlanePropertiesKHR) -> Result
+	ProcGetDisplayPlaneSupportedDisplaysKHR                             :: #type proc "stdcall" (physicalDevice: PhysicalDevice, planeIndex: u32, pDisplayCount: ^u32, pDisplays: ^DisplayKHR) -> Result
+	ProcGetDisplayModePropertiesKHR                                     :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: ^u32, pProperties: ^DisplayModePropertiesKHR) -> Result
+	ProcCreateDisplayModeKHR                                            :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR, pCreateInfo: ^DisplayModeCreateInfoKHR, pAllocator: ^AllocationCallbacks, pMode: ^DisplayModeKHR) -> Result
+	ProcGetDisplayPlaneCapabilitiesKHR                                  :: #type proc "stdcall" (physicalDevice: PhysicalDevice, mode: DisplayModeKHR, planeIndex: u32, pCapabilities: ^DisplayPlaneCapabilitiesKHR) -> Result
+	ProcCreateDisplayPlaneSurfaceKHR                                    :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^DisplaySurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcCreateSharedSwapchainsKHR                                       :: #type proc "stdcall" (device: Device, swapchainCount: u32, pCreateInfos: ^SwapchainCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSwapchains: ^SwapchainKHR) -> Result
+	ProcGetPhysicalDeviceFeatures2KHR                                   :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures2)
+	ProcGetPhysicalDeviceProperties2KHR                                 :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties2)
+	ProcGetPhysicalDeviceFormatProperties2KHR                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties2)
+	ProcGetPhysicalDeviceImageFormatProperties2KHR                      :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pImageFormatInfo: ^PhysicalDeviceImageFormatInfo2, pImageFormatProperties: ^ImageFormatProperties2) -> Result
+	ProcGetPhysicalDeviceQueueFamilyProperties2KHR                      :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties2)
+	ProcGetPhysicalDeviceMemoryProperties2KHR                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties2)
+	ProcGetPhysicalDeviceSparseImageFormatProperties2KHR                :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFormatInfo: ^PhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties2)
+	ProcGetDeviceGroupPeerMemoryFeaturesKHR                             :: #type proc "stdcall" (device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: ^PeerMemoryFeatureFlags)
+	ProcCmdSetDeviceMaskKHR                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, deviceMask: u32)
+	ProcCmdDispatchBaseKHR                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
+	ProcTrimCommandPoolKHR                                              :: #type proc "stdcall" (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags)
+	ProcEnumeratePhysicalDeviceGroupsKHR                                :: #type proc "stdcall" (instance: Instance, pPhysicalDeviceGroupCount: ^u32, pPhysicalDeviceGroupProperties: ^PhysicalDeviceGroupProperties) -> Result
+	ProcGetPhysicalDeviceExternalBufferPropertiesKHR                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalBufferInfo: ^PhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ^ExternalBufferProperties)
+	ProcGetMemoryFdKHR                                                  :: #type proc "stdcall" (device: Device, pGetFdInfo: ^MemoryGetFdInfoKHR, pFd: ^c.int) -> Result
+	ProcGetMemoryFdPropertiesKHR                                        :: #type proc "stdcall" (device: Device, handleType: ExternalMemoryHandleTypeFlags, fd: c.int, pMemoryFdProperties: ^MemoryFdPropertiesKHR) -> Result
+	ProcGetPhysicalDeviceExternalSemaphorePropertiesKHR                 :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalSemaphoreInfo: ^PhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ^ExternalSemaphoreProperties)
+	ProcImportSemaphoreFdKHR                                            :: #type proc "stdcall" (device: Device, pImportSemaphoreFdInfo: ^ImportSemaphoreFdInfoKHR) -> Result
+	ProcGetSemaphoreFdKHR                                               :: #type proc "stdcall" (device: Device, pGetFdInfo: ^SemaphoreGetFdInfoKHR, pFd: ^c.int) -> Result
+	ProcCmdPushDescriptorSetKHR                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, set: u32, descriptorWriteCount: u32, pDescriptorWrites: ^WriteDescriptorSet)
+	ProcCmdPushDescriptorSetWithTemplateKHR                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, descriptorUpdateTemplate: DescriptorUpdateTemplate, layout: PipelineLayout, set: u32, pData: rawptr)
+	ProcCreateDescriptorUpdateTemplateKHR                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result
+	ProcDestroyDescriptorUpdateTemplateKHR                              :: #type proc "stdcall" (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplate, pAllocator: ^AllocationCallbacks)
+	ProcUpdateDescriptorSetWithTemplateKHR                              :: #type proc "stdcall" (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplate, pData: rawptr)
+	ProcCreateRenderPass2KHR                                            :: #type proc "stdcall" (device: Device, pCreateInfo: ^RenderPassCreateInfo2, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result
+	ProcCmdBeginRenderPass2KHR                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, pSubpassBeginInfo: ^SubpassBeginInfo)
+	ProcCmdNextSubpass2KHR                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo)
+	ProcCmdEndRenderPass2KHR                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSubpassEndInfo: ^SubpassEndInfo)
+	ProcGetSwapchainStatusKHR                                           :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR) -> Result
+	ProcGetPhysicalDeviceExternalFencePropertiesKHR                     :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pExternalFenceInfo: ^PhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ^ExternalFenceProperties)
+	ProcImportFenceFdKHR                                                :: #type proc "stdcall" (device: Device, pImportFenceFdInfo: ^ImportFenceFdInfoKHR) -> Result
+	ProcGetFenceFdKHR                                                   :: #type proc "stdcall" (device: Device, pGetFdInfo: ^FenceGetFdInfoKHR, pFd: ^c.int) -> Result
+	ProcEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   :: #type proc "stdcall" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, pCounterCount: ^u32, pCounters: ^PerformanceCounterKHR, pCounterDescriptions: ^PerformanceCounterDescriptionKHR) -> Result
+	ProcGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPerformanceQueryCreateInfo: ^QueryPoolPerformanceCreateInfoKHR, pNumPasses: ^u32)
+	ProcAcquireProfilingLockKHR                                         :: #type proc "stdcall" (device: Device, pInfo: ^AcquireProfilingLockInfoKHR) -> Result
+	ProcReleaseProfilingLockKHR                                         :: #type proc "stdcall" (device: Device)
+	ProcGetPhysicalDeviceSurfaceCapabilities2KHR                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ^SurfaceCapabilities2KHR) -> Result
+	ProcGetPhysicalDeviceSurfaceFormats2KHR                             :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ^u32, pSurfaceFormats: ^SurfaceFormat2KHR) -> Result
+	ProcGetPhysicalDeviceDisplayProperties2KHR                          :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayProperties2KHR) -> Result
+	ProcGetPhysicalDeviceDisplayPlaneProperties2KHR                     :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPlaneProperties2KHR) -> Result
+	ProcGetDisplayModeProperties2KHR                                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: ^u32, pProperties: ^DisplayModeProperties2KHR) -> Result
+	ProcGetDisplayPlaneCapabilities2KHR                                 :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pDisplayPlaneInfo: ^DisplayPlaneInfo2KHR, pCapabilities: ^DisplayPlaneCapabilities2KHR) -> Result
+	ProcGetImageMemoryRequirements2KHR                                  :: #type proc "stdcall" (device: Device, pInfo: ^ImageMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2)
+	ProcGetBufferMemoryRequirements2KHR                                 :: #type proc "stdcall" (device: Device, pInfo: ^BufferMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2)
+	ProcGetImageSparseMemoryRequirements2KHR                            :: #type proc "stdcall" (device: Device, pInfo: ^ImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements2)
+	ProcCreateSamplerYcbcrConversionKHR                                 :: #type proc "stdcall" (device: Device, pCreateInfo: ^SamplerYcbcrConversionCreateInfo, pAllocator: ^AllocationCallbacks, pYcbcrConversion: ^SamplerYcbcrConversion) -> Result
+	ProcDestroySamplerYcbcrConversionKHR                                :: #type proc "stdcall" (device: Device, ycbcrConversion: SamplerYcbcrConversion, pAllocator: ^AllocationCallbacks)
+	ProcBindBufferMemory2KHR                                            :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindBufferMemoryInfo) -> Result
+	ProcBindImageMemory2KHR                                             :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindImageMemoryInfo) -> Result
+	ProcGetDescriptorSetLayoutSupportKHR                                :: #type proc "stdcall" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pSupport: ^DescriptorSetLayoutSupport)
+	ProcCmdDrawIndirectCountKHR                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCmdDrawIndexedIndirectCountKHR                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcGetSemaphoreCounterValueKHR                                     :: #type proc "stdcall" (device: Device, semaphore: Semaphore, pValue: ^u64) -> Result
+	ProcWaitSemaphoresKHR                                               :: #type proc "stdcall" (device: Device, pWaitInfo: ^SemaphoreWaitInfo, timeout: u64) -> Result
+	ProcSignalSemaphoreKHR                                              :: #type proc "stdcall" (device: Device, pSignalInfo: ^SemaphoreSignalInfo) -> Result
+	ProcGetPhysicalDeviceFragmentShadingRatesKHR                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pFragmentShadingRateCount: ^u32, pFragmentShadingRates: ^PhysicalDeviceFragmentShadingRateKHR) -> Result
+	ProcCmdSetFragmentShadingRateKHR                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, pFragmentSize: ^Extent2D)
+	ProcWaitForPresentKHR                                               :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, presentId: u64, timeout: u64) -> Result
+	ProcGetBufferDeviceAddressKHR                                       :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress
+	ProcGetBufferOpaqueCaptureAddressKHR                                :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> u64
+	ProcGetDeviceMemoryOpaqueCaptureAddressKHR                          :: #type proc "stdcall" (device: Device, pInfo: ^DeviceMemoryOpaqueCaptureAddressInfo) -> u64
+	ProcCreateDeferredOperationKHR                                      :: #type proc "stdcall" (device: Device, pAllocator: ^AllocationCallbacks, pDeferredOperation: ^DeferredOperationKHR) -> Result
+	ProcDestroyDeferredOperationKHR                                     :: #type proc "stdcall" (device: Device, operation: DeferredOperationKHR, pAllocator: ^AllocationCallbacks)
+	ProcGetDeferredOperationMaxConcurrencyKHR                           :: #type proc "stdcall" (device: Device, operation: DeferredOperationKHR) -> u32
+	ProcGetDeferredOperationResultKHR                                   :: #type proc "stdcall" (device: Device, operation: DeferredOperationKHR) -> Result
+	ProcDeferredOperationJoinKHR                                        :: #type proc "stdcall" (device: Device, operation: DeferredOperationKHR) -> Result
+	ProcGetPipelineExecutablePropertiesKHR                              :: #type proc "stdcall" (device: Device, pPipelineInfo: ^PipelineInfoKHR, pExecutableCount: ^u32, pProperties: ^PipelineExecutablePropertiesKHR) -> Result
+	ProcGetPipelineExecutableStatisticsKHR                              :: #type proc "stdcall" (device: Device, pExecutableInfo: ^PipelineExecutableInfoKHR, pStatisticCount: ^u32, pStatistics: ^PipelineExecutableStatisticKHR) -> Result
+	ProcGetPipelineExecutableInternalRepresentationsKHR                 :: #type proc "stdcall" (device: Device, pExecutableInfo: ^PipelineExecutableInfoKHR, pInternalRepresentationCount: ^u32, pInternalRepresentations: ^PipelineExecutableInternalRepresentationKHR) -> Result
+	ProcCmdSetEvent2KHR                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, event: Event, pDependencyInfo: ^DependencyInfoKHR)
+	ProcCmdResetEvent2KHR                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags2KHR)
+	ProcCmdWaitEvents2KHR                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, eventCount: u32, pEvents: ^Event, pDependencyInfos: ^DependencyInfoKHR)
+	ProcCmdPipelineBarrier2KHR                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, pDependencyInfo: ^DependencyInfoKHR)
+	ProcCmdWriteTimestamp2KHR                                           :: #type proc "stdcall" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2KHR, queryPool: QueryPool, query: u32)
+	ProcQueueSubmit2KHR                                                 :: #type proc "stdcall" (queue: Queue, submitCount: u32, pSubmits: ^SubmitInfo2KHR, fence: Fence) -> Result
+	ProcCmdWriteBufferMarker2AMD                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2KHR, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32)
+	ProcGetQueueCheckpointData2NV                                       :: #type proc "stdcall" (queue: Queue, pCheckpointDataCount: ^u32, pCheckpointData: ^CheckpointData2NV)
+	ProcCmdCopyBuffer2KHR                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCopyBufferInfo: ^CopyBufferInfo2KHR)
+	ProcCmdCopyImage2KHR                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCopyImageInfo: ^CopyImageInfo2KHR)
+	ProcCmdCopyBufferToImage2KHR                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCopyBufferToImageInfo: ^CopyBufferToImageInfo2KHR)
+	ProcCmdCopyImageToBuffer2KHR                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCopyImageToBufferInfo: ^CopyImageToBufferInfo2KHR)
+	ProcCmdBlitImage2KHR                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, pBlitImageInfo: ^BlitImageInfo2KHR)
+	ProcCmdResolveImage2KHR                                             :: #type proc "stdcall" (commandBuffer: CommandBuffer, pResolveImageInfo: ^ResolveImageInfo2KHR)
+	ProcDebugReportCallbackEXT                                          :: #type proc "stdcall" (flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring, pUserData: rawptr) -> b32
+	ProcCreateDebugReportCallbackEXT                                    :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^DebugReportCallbackCreateInfoEXT, pAllocator: ^AllocationCallbacks, pCallback: ^DebugReportCallbackEXT) -> Result
+	ProcDestroyDebugReportCallbackEXT                                   :: #type proc "stdcall" (instance: Instance, callback: DebugReportCallbackEXT, pAllocator: ^AllocationCallbacks)
+	ProcDebugReportMessageEXT                                           :: #type proc "stdcall" (instance: Instance, flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring)
+	ProcDebugMarkerSetObjectTagEXT                                      :: #type proc "stdcall" (device: Device, pTagInfo: ^DebugMarkerObjectTagInfoEXT) -> Result
+	ProcDebugMarkerSetObjectNameEXT                                     :: #type proc "stdcall" (device: Device, pNameInfo: ^DebugMarkerObjectNameInfoEXT) -> Result
+	ProcCmdDebugMarkerBeginEXT                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, pMarkerInfo: ^DebugMarkerMarkerInfoEXT)
+	ProcCmdDebugMarkerEndEXT                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer)
+	ProcCmdDebugMarkerInsertEXT                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pMarkerInfo: ^DebugMarkerMarkerInfoEXT)
+	ProcCmdBindTransformFeedbackBuffersEXT                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize, pSizes: ^DeviceSize)
+	ProcCmdBeginTransformFeedbackEXT                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: ^Buffer, pCounterBufferOffsets: ^DeviceSize)
+	ProcCmdEndTransformFeedbackEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: ^Buffer, pCounterBufferOffsets: ^DeviceSize)
+	ProcCmdBeginQueryIndexedEXT                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags, index: u32)
+	ProcCmdEndQueryIndexedEXT                                           :: #type proc "stdcall" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, index: u32)
+	ProcCmdDrawIndirectByteCountEXT                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, instanceCount: u32, firstInstance: u32, counterBuffer: Buffer, counterBufferOffset: DeviceSize, counterOffset: u32, vertexStride: u32)
+	ProcCreateCuModuleNVX                                               :: #type proc "stdcall" (device: Device, pCreateInfo: ^CuModuleCreateInfoNVX, pAllocator: ^AllocationCallbacks, pModule: ^CuModuleNVX) -> Result
+	ProcCreateCuFunctionNVX                                             :: #type proc "stdcall" (device: Device, pCreateInfo: ^CuFunctionCreateInfoNVX, pAllocator: ^AllocationCallbacks, pFunction: ^CuFunctionNVX) -> Result
+	ProcDestroyCuModuleNVX                                              :: #type proc "stdcall" (device: Device, module: CuModuleNVX, pAllocator: ^AllocationCallbacks)
+	ProcDestroyCuFunctionNVX                                            :: #type proc "stdcall" (device: Device, function: CuFunctionNVX, pAllocator: ^AllocationCallbacks)
+	ProcCmdCuLaunchKernelNVX                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, pLaunchInfo: ^CuLaunchInfoNVX)
+	ProcGetImageViewHandleNVX                                           :: #type proc "stdcall" (device: Device, pInfo: ^ImageViewHandleInfoNVX) -> u32
+	ProcGetImageViewAddressNVX                                          :: #type proc "stdcall" (device: Device, imageView: ImageView, pProperties: ^ImageViewAddressPropertiesNVX) -> Result
+	ProcCmdDrawIndirectCountAMD                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCmdDrawIndexedIndirectCountAMD                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcGetShaderInfoAMD                                                :: #type proc "stdcall" (device: Device, pipeline: Pipeline, shaderStage: ShaderStageFlags, infoType: ShaderInfoTypeAMD, pInfoSize: ^int, pInfo: rawptr) -> Result
+	ProcGetPhysicalDeviceExternalImageFormatPropertiesNV                :: #type proc "stdcall" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, externalHandleType: ExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ^ExternalImageFormatPropertiesNV) -> Result
+	ProcCmdBeginConditionalRenderingEXT                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pConditionalRenderingBegin: ^ConditionalRenderingBeginInfoEXT)
+	ProcCmdEndConditionalRenderingEXT                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer)
+	ProcCmdSetViewportWScalingNV                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewportWScalings: ^ViewportWScalingNV)
+	ProcReleaseDisplayEXT                                               :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result
+	ProcGetPhysicalDeviceSurfaceCapabilities2EXT                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: ^SurfaceCapabilities2EXT) -> Result
+	ProcDisplayPowerControlEXT                                          :: #type proc "stdcall" (device: Device, display: DisplayKHR, pDisplayPowerInfo: ^DisplayPowerInfoEXT) -> Result
+	ProcRegisterDeviceEventEXT                                          :: #type proc "stdcall" (device: Device, pDeviceEventInfo: ^DeviceEventInfoEXT, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result
+	ProcRegisterDisplayEventEXT                                         :: #type proc "stdcall" (device: Device, display: DisplayKHR, pDisplayEventInfo: ^DisplayEventInfoEXT, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result
+	ProcGetSwapchainCounterEXT                                          :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, counter: SurfaceCounterFlagsEXT, pCounterValue: ^u64) -> Result
+	ProcGetRefreshCycleDurationGOOGLE                                   :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, pDisplayTimingProperties: ^RefreshCycleDurationGOOGLE) -> Result
+	ProcGetPastPresentationTimingGOOGLE                                 :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR, pPresentationTimingCount: ^u32, pPresentationTimings: ^PastPresentationTimingGOOGLE) -> Result
+	ProcCmdSetDiscardRectangleEXT                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstDiscardRectangle: u32, discardRectangleCount: u32, pDiscardRectangles: ^Rect2D)
+	ProcSetHdrMetadataEXT                                               :: #type proc "stdcall" (device: Device, swapchainCount: u32, pSwapchains: ^SwapchainKHR, pMetadata: ^HdrMetadataEXT)
+	ProcDebugUtilsMessengerCallbackEXT                                  :: #type proc "stdcall" (messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT, pUserData: rawptr) -> b32
+	ProcSetDebugUtilsObjectNameEXT                                      :: #type proc "stdcall" (device: Device, pNameInfo: ^DebugUtilsObjectNameInfoEXT) -> Result
+	ProcSetDebugUtilsObjectTagEXT                                       :: #type proc "stdcall" (device: Device, pTagInfo: ^DebugUtilsObjectTagInfoEXT) -> Result
+	ProcQueueBeginDebugUtilsLabelEXT                                    :: #type proc "stdcall" (queue: Queue, pLabelInfo: ^DebugUtilsLabelEXT)
+	ProcQueueEndDebugUtilsLabelEXT                                      :: #type proc "stdcall" (queue: Queue)
+	ProcQueueInsertDebugUtilsLabelEXT                                   :: #type proc "stdcall" (queue: Queue, pLabelInfo: ^DebugUtilsLabelEXT)
+	ProcCmdBeginDebugUtilsLabelEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT)
+	ProcCmdEndDebugUtilsLabelEXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer)
+	ProcCmdInsertDebugUtilsLabelEXT                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT)
+	ProcCreateDebugUtilsMessengerEXT                                    :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^DebugUtilsMessengerCreateInfoEXT, pAllocator: ^AllocationCallbacks, pMessenger: ^DebugUtilsMessengerEXT) -> Result
+	ProcDestroyDebugUtilsMessengerEXT                                   :: #type proc "stdcall" (instance: Instance, messenger: DebugUtilsMessengerEXT, pAllocator: ^AllocationCallbacks)
+	ProcSubmitDebugUtilsMessageEXT                                      :: #type proc "stdcall" (instance: Instance, messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT)
+	ProcCmdSetSampleLocationsEXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, pSampleLocationsInfo: ^SampleLocationsInfoEXT)
+	ProcGetPhysicalDeviceMultisamplePropertiesEXT                       :: #type proc "stdcall" (physicalDevice: PhysicalDevice, samples: SampleCountFlags, pMultisampleProperties: ^MultisamplePropertiesEXT)
+	ProcGetImageDrmFormatModifierPropertiesEXT                          :: #type proc "stdcall" (device: Device, image: Image, pProperties: ^ImageDrmFormatModifierPropertiesEXT) -> Result
+	ProcCreateValidationCacheEXT                                        :: #type proc "stdcall" (device: Device, pCreateInfo: ^ValidationCacheCreateInfoEXT, pAllocator: ^AllocationCallbacks, pValidationCache: ^ValidationCacheEXT) -> Result
+	ProcDestroyValidationCacheEXT                                       :: #type proc "stdcall" (device: Device, validationCache: ValidationCacheEXT, pAllocator: ^AllocationCallbacks)
+	ProcMergeValidationCachesEXT                                        :: #type proc "stdcall" (device: Device, dstCache: ValidationCacheEXT, srcCacheCount: u32, pSrcCaches: ^ValidationCacheEXT) -> Result
+	ProcGetValidationCacheDataEXT                                       :: #type proc "stdcall" (device: Device, validationCache: ValidationCacheEXT, pDataSize: ^int, pData: rawptr) -> Result
+	ProcCmdBindShadingRateImageNV                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, imageView: ImageView, imageLayout: ImageLayout)
+	ProcCmdSetViewportShadingRatePaletteNV                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pShadingRatePalettes: ^ShadingRatePaletteNV)
+	ProcCmdSetCoarseSampleOrderNV                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, sampleOrderType: CoarseSampleOrderTypeNV, customSampleOrderCount: u32, pCustomSampleOrders: ^CoarseSampleOrderCustomNV)
+	ProcCreateAccelerationStructureNV                                   :: #type proc "stdcall" (device: Device, pCreateInfo: ^AccelerationStructureCreateInfoNV, pAllocator: ^AllocationCallbacks, pAccelerationStructure: ^AccelerationStructureNV) -> Result
+	ProcDestroyAccelerationStructureNV                                  :: #type proc "stdcall" (device: Device, accelerationStructure: AccelerationStructureNV, pAllocator: ^AllocationCallbacks)
+	ProcGetAccelerationStructureMemoryRequirementsNV                    :: #type proc "stdcall" (device: Device, pInfo: ^AccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ^MemoryRequirements2KHR)
+	ProcBindAccelerationStructureMemoryNV                               :: #type proc "stdcall" (device: Device, bindInfoCount: u32, pBindInfos: ^BindAccelerationStructureMemoryInfoNV) -> Result
+	ProcCmdBuildAccelerationStructureNV                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pInfo: ^AccelerationStructureInfoNV, instanceData: Buffer, instanceOffset: DeviceSize, update: b32, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratchOffset: DeviceSize)
+	ProcCmdCopyAccelerationStructureNV                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, dst: AccelerationStructureNV, src: AccelerationStructureNV, mode: CopyAccelerationStructureModeKHR)
+	ProcCmdTraceRaysNV                                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, raygenShaderBindingTableBuffer: Buffer, raygenShaderBindingOffset: DeviceSize, missShaderBindingTableBuffer: Buffer, missShaderBindingOffset: DeviceSize, missShaderBindingStride: DeviceSize, hitShaderBindingTableBuffer: Buffer, hitShaderBindingOffset: DeviceSize, hitShaderBindingStride: DeviceSize, callableShaderBindingTableBuffer: Buffer, callableShaderBindingOffset: DeviceSize, callableShaderBindingStride: DeviceSize, width: u32, height: u32, depth: u32)
+	ProcCreateRayTracingPipelinesNV                                     :: #type proc "stdcall" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^RayTracingPipelineCreateInfoNV, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result
+	ProcGetRayTracingShaderGroupHandlesKHR                              :: #type proc "stdcall" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result
+	ProcGetRayTracingShaderGroupHandlesNV                               :: #type proc "stdcall" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result
+	ProcGetAccelerationStructureHandleNV                                :: #type proc "stdcall" (device: Device, accelerationStructure: AccelerationStructureNV, dataSize: int, pData: rawptr) -> Result
+	ProcCmdWriteAccelerationStructuresPropertiesNV                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureNV, queryType: QueryType, queryPool: QueryPool, firstQuery: u32)
+	ProcCompileDeferredNV                                               :: #type proc "stdcall" (device: Device, pipeline: Pipeline, shader: u32) -> Result
+	ProcGetMemoryHostPointerPropertiesEXT                               :: #type proc "stdcall" (device: Device, handleType: ExternalMemoryHandleTypeFlags, pHostPointer: rawptr, pMemoryHostPointerProperties: ^MemoryHostPointerPropertiesEXT) -> Result
+	ProcCmdWriteBufferMarkerAMD                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32)
+	ProcGetPhysicalDeviceCalibrateableTimeDomainsEXT                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pTimeDomainCount: ^u32, pTimeDomains: ^TimeDomainEXT) -> Result
+	ProcGetCalibratedTimestampsEXT                                      :: #type proc "stdcall" (device: Device, timestampCount: u32, pTimestampInfos: ^CalibratedTimestampInfoEXT, pTimestamps: ^u64, pMaxDeviation: ^u64) -> Result
+	ProcCmdDrawMeshTasksNV                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, taskCount: u32, firstTask: u32)
+	ProcCmdDrawMeshTasksIndirectNV                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32)
+	ProcCmdDrawMeshTasksIndirectCountNV                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCmdSetExclusiveScissorNV                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstExclusiveScissor: u32, exclusiveScissorCount: u32, pExclusiveScissors: ^Rect2D)
+	ProcCmdSetCheckpointNV                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pCheckpointMarker: rawptr)
+	ProcGetQueueCheckpointDataNV                                        :: #type proc "stdcall" (queue: Queue, pCheckpointDataCount: ^u32, pCheckpointData: ^CheckpointDataNV)
+	ProcInitializePerformanceApiINTEL                                   :: #type proc "stdcall" (device: Device, pInitializeInfo: ^InitializePerformanceApiInfoINTEL) -> Result
+	ProcUninitializePerformanceApiINTEL                                 :: #type proc "stdcall" (device: Device)
+	ProcCmdSetPerformanceMarkerINTEL                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, pMarkerInfo: ^PerformanceMarkerInfoINTEL) -> Result
+	ProcCmdSetPerformanceStreamMarkerINTEL                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, pMarkerInfo: ^PerformanceStreamMarkerInfoINTEL) -> Result
+	ProcCmdSetPerformanceOverrideINTEL                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, pOverrideInfo: ^PerformanceOverrideInfoINTEL) -> Result
+	ProcAcquirePerformanceConfigurationINTEL                            :: #type proc "stdcall" (device: Device, pAcquireInfo: ^PerformanceConfigurationAcquireInfoINTEL, pConfiguration: ^PerformanceConfigurationINTEL) -> Result
+	ProcReleasePerformanceConfigurationINTEL                            :: #type proc "stdcall" (device: Device, configuration: PerformanceConfigurationINTEL) -> Result
+	ProcQueueSetPerformanceConfigurationINTEL                           :: #type proc "stdcall" (queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result
+	ProcGetPerformanceParameterINTEL                                    :: #type proc "stdcall" (device: Device, parameter: PerformanceParameterTypeINTEL, pValue: ^PerformanceValueINTEL) -> Result
+	ProcSetLocalDimmingAMD                                              :: #type proc "stdcall" (device: Device, swapChain: SwapchainKHR, localDimmingEnable: b32)
+	ProcGetBufferDeviceAddressEXT                                       :: #type proc "stdcall" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress
+	ProcGetPhysicalDeviceToolPropertiesEXT                              :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pToolCount: ^u32, pToolProperties: ^PhysicalDeviceToolPropertiesEXT) -> Result
+	ProcGetPhysicalDeviceCooperativeMatrixPropertiesNV                  :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^CooperativeMatrixPropertiesNV) -> Result
+	ProcGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pCombinationCount: ^u32, pCombinations: ^FramebufferMixedSamplesCombinationNV) -> Result
+	ProcCreateHeadlessSurfaceEXT                                        :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^HeadlessSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcCmdSetLineStippleEXT                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, lineStippleFactor: u32, lineStipplePattern: u16)
+	ProcResetQueryPoolEXT                                               :: #type proc "stdcall" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32)
+	ProcCmdSetCullModeEXT                                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, cullMode: CullModeFlags)
+	ProcCmdSetFrontFaceEXT                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, frontFace: FrontFace)
+	ProcCmdSetPrimitiveTopologyEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, primitiveTopology: PrimitiveTopology)
+	ProcCmdSetViewportWithCountEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, viewportCount: u32, pViewports: ^Viewport)
+	ProcCmdSetScissorWithCountEXT                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, scissorCount: u32, pScissors: ^Rect2D)
+	ProcCmdBindVertexBuffers2EXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize, pSizes: ^DeviceSize, pStrides: ^DeviceSize)
+	ProcCmdSetDepthTestEnableEXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthTestEnable: b32)
+	ProcCmdSetDepthWriteEnableEXT                                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthWriteEnable: b32)
+	ProcCmdSetDepthCompareOpEXT                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthCompareOp: CompareOp)
+	ProcCmdSetDepthBoundsTestEnableEXT                                  :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthBoundsTestEnable: b32)
+	ProcCmdSetStencilTestEnableEXT                                      :: #type proc "stdcall" (commandBuffer: CommandBuffer, stencilTestEnable: b32)
+	ProcCmdSetStencilOpEXT                                              :: #type proc "stdcall" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, failOp: StencilOp, passOp: StencilOp, depthFailOp: StencilOp, compareOp: CompareOp)
+	ProcGetGeneratedCommandsMemoryRequirementsNV                        :: #type proc "stdcall" (device: Device, pInfo: ^GeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ^MemoryRequirements2)
+	ProcCmdPreprocessGeneratedCommandsNV                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV)
+	ProcCmdExecuteGeneratedCommandsNV                                   :: #type proc "stdcall" (commandBuffer: CommandBuffer, isPreprocessed: b32, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV)
+	ProcCmdBindPipelineShaderGroupNV                                    :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline, groupIndex: u32)
+	ProcCreateIndirectCommandsLayoutNV                                  :: #type proc "stdcall" (device: Device, pCreateInfo: ^IndirectCommandsLayoutCreateInfoNV, pAllocator: ^AllocationCallbacks, pIndirectCommandsLayout: ^IndirectCommandsLayoutNV) -> Result
+	ProcDestroyIndirectCommandsLayoutNV                                 :: #type proc "stdcall" (device: Device, indirectCommandsLayout: IndirectCommandsLayoutNV, pAllocator: ^AllocationCallbacks)
+	ProcDeviceMemoryReportCallbackEXT                                   :: #type proc "stdcall" (pCallbackData: ^DeviceMemoryReportCallbackDataEXT, pUserData: rawptr)
+	ProcAcquireDrmDisplayEXT                                            :: #type proc "stdcall" (physicalDevice: PhysicalDevice, drmFd: i32, display: DisplayKHR) -> Result
+	ProcGetDrmDisplayEXT                                                :: #type proc "stdcall" (physicalDevice: PhysicalDevice, drmFd: i32, connectorId: u32, display: ^DisplayKHR) -> Result
+	ProcCreatePrivateDataSlotEXT                                        :: #type proc "stdcall" (device: Device, pCreateInfo: ^PrivateDataSlotCreateInfoEXT, pAllocator: ^AllocationCallbacks, pPrivateDataSlot: ^PrivateDataSlotEXT) -> Result
+	ProcDestroyPrivateDataSlotEXT                                       :: #type proc "stdcall" (device: Device, privateDataSlot: PrivateDataSlotEXT, pAllocator: ^AllocationCallbacks)
+	ProcSetPrivateDataEXT                                               :: #type proc "stdcall" (device: Device, objectType: ObjectType, objectHandle: u64, privateDataSlot: PrivateDataSlotEXT, data: u64) -> Result
+	ProcGetPrivateDataEXT                                               :: #type proc "stdcall" (device: Device, objectType: ObjectType, objectHandle: u64, privateDataSlot: PrivateDataSlotEXT, pData: ^u64)
+	ProcCmdSetFragmentShadingRateEnumNV                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, shadingRate: FragmentShadingRateNV)
+	ProcAcquireWinrtDisplayNV                                           :: #type proc "stdcall" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result
+	ProcGetWinrtDisplayNV                                               :: #type proc "stdcall" (physicalDevice: PhysicalDevice, deviceRelativeId: u32, pDisplay: ^DisplayKHR) -> Result
+	ProcCmdSetVertexInputEXT                                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, vertexBindingDescriptionCount: u32, pVertexBindingDescriptions: ^VertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: u32, pVertexAttributeDescriptions: ^VertexInputAttributeDescription2EXT)
+	ProcGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI                   :: #type proc "stdcall" (device: Device, renderpass: RenderPass, pMaxWorkgroupSize: ^Extent2D) -> Result
+	ProcCmdSubpassShadingHUAWEI                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer)
+	ProcCmdBindInvocationMaskHUAWEI                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, imageView: ImageView, imageLayout: ImageLayout)
+	ProcGetMemoryRemoteAddressNV                                        :: #type proc "stdcall" (device: Device, pMemoryGetRemoteAddressInfo: ^MemoryGetRemoteAddressInfoNV, pAddress: ^RemoteAddressNV) -> Result
+	ProcCmdSetPatchControlPointsEXT                                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, patchControlPoints: u32)
+	ProcCmdSetRasterizerDiscardEnableEXT                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, rasterizerDiscardEnable: b32)
+	ProcCmdSetDepthBiasEnableEXT                                        :: #type proc "stdcall" (commandBuffer: CommandBuffer, depthBiasEnable: b32)
+	ProcCmdSetLogicOpEXT                                                :: #type proc "stdcall" (commandBuffer: CommandBuffer, logicOp: LogicOp)
+	ProcCmdSetPrimitiveRestartEnableEXT                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, primitiveRestartEnable: b32)
+	ProcCmdDrawMultiEXT                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, drawCount: u32, pVertexInfo: ^MultiDrawInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32)
+	ProcCmdDrawMultiIndexedEXT                                          :: #type proc "stdcall" (commandBuffer: CommandBuffer, drawCount: u32, pIndexInfo: ^MultiDrawIndexedInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32, pVertexOffset: ^i32)
+	ProcCreateAccelerationStructureKHR                                  :: #type proc "stdcall" (device: Device, pCreateInfo: ^AccelerationStructureCreateInfoKHR, pAllocator: ^AllocationCallbacks, pAccelerationStructure: ^AccelerationStructureKHR) -> Result
+	ProcDestroyAccelerationStructureKHR                                 :: #type proc "stdcall" (device: Device, accelerationStructure: AccelerationStructureKHR, pAllocator: ^AllocationCallbacks)
+	ProcCmdBuildAccelerationStructuresKHR                               :: #type proc "stdcall" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^^AccelerationStructureBuildRangeInfoKHR)
+	ProcCmdBuildAccelerationStructuresIndirectKHR                       :: #type proc "stdcall" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ^DeviceAddress, pIndirectStrides: ^u32, ppMaxPrimitiveCounts: ^^u32)
+	ProcBuildAccelerationStructuresKHR                                  :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^^AccelerationStructureBuildRangeInfoKHR) -> Result
+	ProcCopyAccelerationStructureKHR                                    :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureInfoKHR) -> Result
+	ProcCopyAccelerationStructureToMemoryKHR                            :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR) -> Result
+	ProcCopyMemoryToAccelerationStructureKHR                            :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyMemoryToAccelerationStructureInfoKHR) -> Result
+	ProcWriteAccelerationStructuresPropertiesKHR                        :: #type proc "stdcall" (device: Device, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureKHR, queryType: QueryType, dataSize: int, pData: rawptr, stride: int) -> Result
+	ProcCmdCopyAccelerationStructureKHR                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureInfoKHR)
+	ProcCmdCopyAccelerationStructureToMemoryKHR                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR)
+	ProcCmdCopyMemoryToAccelerationStructureKHR                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pInfo: ^CopyMemoryToAccelerationStructureInfoKHR)
+	ProcGetAccelerationStructureDeviceAddressKHR                        :: #type proc "stdcall" (device: Device, pInfo: ^AccelerationStructureDeviceAddressInfoKHR) -> DeviceAddress
+	ProcCmdWriteAccelerationStructuresPropertiesKHR                     :: #type proc "stdcall" (commandBuffer: CommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureKHR, queryType: QueryType, queryPool: QueryPool, firstQuery: u32)
+	ProcGetDeviceAccelerationStructureCompatibilityKHR                  :: #type proc "stdcall" (device: Device, pVersionInfo: ^AccelerationStructureVersionInfoKHR, pCompatibility: ^AccelerationStructureCompatibilityKHR)
+	ProcGetAccelerationStructureBuildSizesKHR                           :: #type proc "stdcall" (device: Device, buildType: AccelerationStructureBuildTypeKHR, pBuildInfo: ^AccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ^u32, pSizeInfo: ^AccelerationStructureBuildSizesInfoKHR)
+	ProcCmdTraceRaysKHR                                                 :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRaygenShaderBindingTable: ^StridedDeviceAddressRegionKHR, pMissShaderBindingTable: ^StridedDeviceAddressRegionKHR, pHitShaderBindingTable: ^StridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ^StridedDeviceAddressRegionKHR, width: u32, height: u32, depth: u32)
+	ProcCreateRayTracingPipelinesKHR                                    :: #type proc "stdcall" (device: Device, deferredOperation: DeferredOperationKHR, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^RayTracingPipelineCreateInfoKHR, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result
+	ProcGetRayTracingCaptureReplayShaderGroupHandlesKHR                 :: #type proc "stdcall" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result
+	ProcCmdTraceRaysIndirectKHR                                         :: #type proc "stdcall" (commandBuffer: CommandBuffer, pRaygenShaderBindingTable: ^StridedDeviceAddressRegionKHR, pMissShaderBindingTable: ^StridedDeviceAddressRegionKHR, pHitShaderBindingTable: ^StridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ^StridedDeviceAddressRegionKHR, indirectDeviceAddress: DeviceAddress)
+	ProcGetRayTracingShaderGroupStackSizeKHR                            :: #type proc "stdcall" (device: Device, pipeline: Pipeline, group: u32, groupShader: ShaderGroupShaderKHR) -> DeviceSize
+	ProcCmdSetRayTracingPipelineStackSizeKHR                            :: #type proc "stdcall" (commandBuffer: CommandBuffer, pipelineStackSize: u32)
+	ProcCreateWin32SurfaceKHR                                           :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^Win32SurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcGetPhysicalDeviceWin32PresentationSupportKHR                    :: #type proc "stdcall" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32) -> b32
+	ProcGetMemoryWin32HandleKHR                                         :: #type proc "stdcall" (device: Device, pGetWin32HandleInfo: ^MemoryGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result
+	ProcGetMemoryWin32HandlePropertiesKHR                               :: #type proc "stdcall" (device: Device, handleType: ExternalMemoryHandleTypeFlags, handle: HANDLE, pMemoryWin32HandleProperties: ^MemoryWin32HandlePropertiesKHR) -> Result
+	ProcImportSemaphoreWin32HandleKHR                                   :: #type proc "stdcall" (device: Device, pImportSemaphoreWin32HandleInfo: ^ImportSemaphoreWin32HandleInfoKHR) -> Result
+	ProcGetSemaphoreWin32HandleKHR                                      :: #type proc "stdcall" (device: Device, pGetWin32HandleInfo: ^SemaphoreGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result
+	ProcImportFenceWin32HandleKHR                                       :: #type proc "stdcall" (device: Device, pImportFenceWin32HandleInfo: ^ImportFenceWin32HandleInfoKHR) -> Result
+	ProcGetFenceWin32HandleKHR                                          :: #type proc "stdcall" (device: Device, pGetWin32HandleInfo: ^FenceGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result
+	ProcGetMemoryWin32HandleNV                                          :: #type proc "stdcall" (device: Device, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlagsNV, pHandle: ^HANDLE) -> Result
+	ProcGetPhysicalDeviceSurfacePresentModes2EXT                        :: #type proc "stdcall" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pPresentModeCount: ^u32, pPresentModes: ^PresentModeKHR) -> Result
+	ProcAcquireFullScreenExclusiveModeEXT                               :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR) -> Result
+	ProcReleaseFullScreenExclusiveModeEXT                               :: #type proc "stdcall" (device: Device, swapchain: SwapchainKHR) -> Result
+	ProcGetDeviceGroupSurfacePresentModes2EXT                           :: #type proc "stdcall" (device: Device, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pModes: ^DeviceGroupPresentModeFlagsKHR) -> Result
+	ProcCreateMetalSurfaceEXT                                           :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^MetalSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcCreateMacOSSurfaceMVK                                           :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^MacOSSurfaceCreateInfoMVK, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcCreateIOSSurfaceMVK                                             :: #type proc "stdcall" (instance: Instance, pCreateInfo: ^IOSSurfaceCreateInfoMVK, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
 } else {
-	ProcAllocationFunction                                              :: #type proc "c" (pUserData: rawptr, size: int, alignment: int, allocationScope: SystemAllocationScope) -> rawptr;
-	ProcFreeFunction                                                    :: #type proc "c" (pUserData: rawptr, pMemory: rawptr);
-	ProcInternalAllocationNotification                                  :: #type proc "c" (pUserData: rawptr, size: int, allocationType: InternalAllocationType, allocationScope: SystemAllocationScope);
-	ProcInternalFreeNotification                                        :: #type proc "c" (pUserData: rawptr, size: int, allocationType: InternalAllocationType, allocationScope: SystemAllocationScope);
-	ProcReallocationFunction                                            :: #type proc "c" (pUserData: rawptr, pOriginal: rawptr, size: int, alignment: int, allocationScope: SystemAllocationScope) -> rawptr;
-	ProcVoidFunction                                                    :: #type proc "c" ();
-	ProcCreateInstance                                                  :: #type proc "c" (pCreateInfo: ^InstanceCreateInfo, pAllocator: ^AllocationCallbacks, pInstance: ^Instance) -> Result;
-	ProcDestroyInstance                                                 :: #type proc "c" (instance: Instance, pAllocator: ^AllocationCallbacks);
-	ProcEnumeratePhysicalDevices                                        :: #type proc "c" (instance: Instance, pPhysicalDeviceCount: ^u32, pPhysicalDevices: ^PhysicalDevice) -> Result;
-	ProcGetPhysicalDeviceFeatures                                       :: #type proc "c" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures);
-	ProcGetPhysicalDeviceFormatProperties                               :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties);
-	ProcGetPhysicalDeviceImageFormatProperties                          :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, pImageFormatProperties: ^ImageFormatProperties) -> Result;
-	ProcGetPhysicalDeviceProperties                                     :: #type proc "c" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties);
-	ProcGetPhysicalDeviceQueueFamilyProperties                          :: #type proc "c" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties);
-	ProcGetPhysicalDeviceMemoryProperties                               :: #type proc "c" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties);
-	ProcGetInstanceProcAddr                                             :: #type proc "c" (instance: Instance, pName: cstring) -> ProcVoidFunction;
-	ProcGetDeviceProcAddr                                               :: #type proc "c" (device: Device, pName: cstring) -> ProcVoidFunction;
-	ProcCreateDevice                                                    :: #type proc "c" (physicalDevice: PhysicalDevice, pCreateInfo: ^DeviceCreateInfo, pAllocator: ^AllocationCallbacks, pDevice: ^Device) -> Result;
-	ProcDestroyDevice                                                   :: #type proc "c" (device: Device, pAllocator: ^AllocationCallbacks);
-	ProcEnumerateInstanceExtensionProperties                            :: #type proc "c" (pLayerName: cstring, pPropertyCount: ^u32, pProperties: ^ExtensionProperties) -> Result;
-	ProcEnumerateDeviceExtensionProperties                              :: #type proc "c" (physicalDevice: PhysicalDevice, pLayerName: cstring, pPropertyCount: ^u32, pProperties: ^ExtensionProperties) -> Result;
-	ProcEnumerateInstanceLayerProperties                                :: #type proc "c" (pPropertyCount: ^u32, pProperties: ^LayerProperties) -> Result;
-	ProcEnumerateDeviceLayerProperties                                  :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^LayerProperties) -> Result;
-	ProcGetDeviceQueue                                                  :: #type proc "c" (device: Device, queueFamilyIndex: u32, queueIndex: u32, pQueue: ^Queue);
-	ProcQueueSubmit                                                     :: #type proc "c" (queue: Queue, submitCount: u32, pSubmits: ^SubmitInfo, fence: Fence) -> Result;
-	ProcQueueWaitIdle                                                   :: #type proc "c" (queue: Queue) -> Result;
-	ProcDeviceWaitIdle                                                  :: #type proc "c" (device: Device) -> Result;
-	ProcAllocateMemory                                                  :: #type proc "c" (device: Device, pAllocateInfo: ^MemoryAllocateInfo, pAllocator: ^AllocationCallbacks, pMemory: ^DeviceMemory) -> Result;
-	ProcFreeMemory                                                      :: #type proc "c" (device: Device, memory: DeviceMemory, pAllocator: ^AllocationCallbacks);
-	ProcMapMemory                                                       :: #type proc "c" (device: Device, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, flags: MemoryMapFlags, ppData: ^rawptr) -> Result;
-	ProcUnmapMemory                                                     :: #type proc "c" (device: Device, memory: DeviceMemory);
-	ProcFlushMappedMemoryRanges                                         :: #type proc "c" (device: Device, memoryRangeCount: u32, pMemoryRanges: ^MappedMemoryRange) -> Result;
-	ProcInvalidateMappedMemoryRanges                                    :: #type proc "c" (device: Device, memoryRangeCount: u32, pMemoryRanges: ^MappedMemoryRange) -> Result;
-	ProcGetDeviceMemoryCommitment                                       :: #type proc "c" (device: Device, memory: DeviceMemory, pCommittedMemoryInBytes: ^DeviceSize);
-	ProcBindBufferMemory                                                :: #type proc "c" (device: Device, buffer: Buffer, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result;
-	ProcBindImageMemory                                                 :: #type proc "c" (device: Device, image: Image, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result;
-	ProcGetBufferMemoryRequirements                                     :: #type proc "c" (device: Device, buffer: Buffer, pMemoryRequirements: ^MemoryRequirements);
-	ProcGetImageMemoryRequirements                                      :: #type proc "c" (device: Device, image: Image, pMemoryRequirements: ^MemoryRequirements);
-	ProcGetImageSparseMemoryRequirements                                :: #type proc "c" (device: Device, image: Image, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements);
-	ProcGetPhysicalDeviceSparseImageFormatProperties                    :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, samples: SampleCountFlags, usage: ImageUsageFlags, tiling: ImageTiling, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties);
-	ProcQueueBindSparse                                                 :: #type proc "c" (queue: Queue, bindInfoCount: u32, pBindInfo: ^BindSparseInfo, fence: Fence) -> Result;
-	ProcCreateFence                                                     :: #type proc "c" (device: Device, pCreateInfo: ^FenceCreateInfo, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result;
-	ProcDestroyFence                                                    :: #type proc "c" (device: Device, fence: Fence, pAllocator: ^AllocationCallbacks);
-	ProcResetFences                                                     :: #type proc "c" (device: Device, fenceCount: u32, pFences: ^Fence) -> Result;
-	ProcGetFenceStatus                                                  :: #type proc "c" (device: Device, fence: Fence) -> Result;
-	ProcWaitForFences                                                   :: #type proc "c" (device: Device, fenceCount: u32, pFences: ^Fence, waitAll: b32, timeout: u64) -> Result;
-	ProcCreateSemaphore                                                 :: #type proc "c" (device: Device, pCreateInfo: ^SemaphoreCreateInfo, pAllocator: ^AllocationCallbacks, pSemaphore: ^Semaphore) -> Result;
-	ProcDestroySemaphore                                                :: #type proc "c" (device: Device, semaphore: Semaphore, pAllocator: ^AllocationCallbacks);
-	ProcCreateEvent                                                     :: #type proc "c" (device: Device, pCreateInfo: ^EventCreateInfo, pAllocator: ^AllocationCallbacks, pEvent: ^Event) -> Result;
-	ProcDestroyEvent                                                    :: #type proc "c" (device: Device, event: Event, pAllocator: ^AllocationCallbacks);
-	ProcGetEventStatus                                                  :: #type proc "c" (device: Device, event: Event) -> Result;
-	ProcSetEvent                                                        :: #type proc "c" (device: Device, event: Event) -> Result;
-	ProcResetEvent                                                      :: #type proc "c" (device: Device, event: Event) -> Result;
-	ProcCreateQueryPool                                                 :: #type proc "c" (device: Device, pCreateInfo: ^QueryPoolCreateInfo, pAllocator: ^AllocationCallbacks, pQueryPool: ^QueryPool) -> Result;
-	ProcDestroyQueryPool                                                :: #type proc "c" (device: Device, queryPool: QueryPool, pAllocator: ^AllocationCallbacks);
-	ProcGetQueryPoolResults                                             :: #type proc "c" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dataSize: int, pData: rawptr, stride: DeviceSize, flags: QueryResultFlags) -> Result;
-	ProcCreateBuffer                                                    :: #type proc "c" (device: Device, pCreateInfo: ^BufferCreateInfo, pAllocator: ^AllocationCallbacks, pBuffer: ^Buffer) -> Result;
-	ProcDestroyBuffer                                                   :: #type proc "c" (device: Device, buffer: Buffer, pAllocator: ^AllocationCallbacks);
-	ProcCreateBufferView                                                :: #type proc "c" (device: Device, pCreateInfo: ^BufferViewCreateInfo, pAllocator: ^AllocationCallbacks, pView: ^BufferView) -> Result;
-	ProcDestroyBufferView                                               :: #type proc "c" (device: Device, bufferView: BufferView, pAllocator: ^AllocationCallbacks);
-	ProcCreateImage                                                     :: #type proc "c" (device: Device, pCreateInfo: ^ImageCreateInfo, pAllocator: ^AllocationCallbacks, pImage: ^Image) -> Result;
-	ProcDestroyImage                                                    :: #type proc "c" (device: Device, image: Image, pAllocator: ^AllocationCallbacks);
-	ProcGetImageSubresourceLayout                                       :: #type proc "c" (device: Device, image: Image, pSubresource: ^ImageSubresource, pLayout: ^SubresourceLayout);
-	ProcCreateImageView                                                 :: #type proc "c" (device: Device, pCreateInfo: ^ImageViewCreateInfo, pAllocator: ^AllocationCallbacks, pView: ^ImageView) -> Result;
-	ProcDestroyImageView                                                :: #type proc "c" (device: Device, imageView: ImageView, pAllocator: ^AllocationCallbacks);
-	ProcCreateShaderModule                                              :: #type proc "c" (device: Device, pCreateInfo: ^ShaderModuleCreateInfo, pAllocator: ^AllocationCallbacks, pShaderModule: ^ShaderModule) -> Result;
-	ProcDestroyShaderModule                                             :: #type proc "c" (device: Device, shaderModule: ShaderModule, pAllocator: ^AllocationCallbacks);
-	ProcCreatePipelineCache                                             :: #type proc "c" (device: Device, pCreateInfo: ^PipelineCacheCreateInfo, pAllocator: ^AllocationCallbacks, pPipelineCache: ^PipelineCache) -> Result;
-	ProcDestroyPipelineCache                                            :: #type proc "c" (device: Device, pipelineCache: PipelineCache, pAllocator: ^AllocationCallbacks);
-	ProcGetPipelineCacheData                                            :: #type proc "c" (device: Device, pipelineCache: PipelineCache, pDataSize: ^int, pData: rawptr) -> Result;
-	ProcMergePipelineCaches                                             :: #type proc "c" (device: Device, dstCache: PipelineCache, srcCacheCount: u32, pSrcCaches: ^PipelineCache) -> Result;
-	ProcCreateGraphicsPipelines                                         :: #type proc "c" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^GraphicsPipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result;
-	ProcCreateComputePipelines                                          :: #type proc "c" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^ComputePipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result;
-	ProcDestroyPipeline                                                 :: #type proc "c" (device: Device, pipeline: Pipeline, pAllocator: ^AllocationCallbacks);
-	ProcCreatePipelineLayout                                            :: #type proc "c" (device: Device, pCreateInfo: ^PipelineLayoutCreateInfo, pAllocator: ^AllocationCallbacks, pPipelineLayout: ^PipelineLayout) -> Result;
-	ProcDestroyPipelineLayout                                           :: #type proc "c" (device: Device, pipelineLayout: PipelineLayout, pAllocator: ^AllocationCallbacks);
-	ProcCreateSampler                                                   :: #type proc "c" (device: Device, pCreateInfo: ^SamplerCreateInfo, pAllocator: ^AllocationCallbacks, pSampler: ^Sampler) -> Result;
-	ProcDestroySampler                                                  :: #type proc "c" (device: Device, sampler: Sampler, pAllocator: ^AllocationCallbacks);
-	ProcCreateDescriptorSetLayout                                       :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pAllocator: ^AllocationCallbacks, pSetLayout: ^DescriptorSetLayout) -> Result;
-	ProcDestroyDescriptorSetLayout                                      :: #type proc "c" (device: Device, descriptorSetLayout: DescriptorSetLayout, pAllocator: ^AllocationCallbacks);
-	ProcCreateDescriptorPool                                            :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorPoolCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorPool: ^DescriptorPool) -> Result;
-	ProcDestroyDescriptorPool                                           :: #type proc "c" (device: Device, descriptorPool: DescriptorPool, pAllocator: ^AllocationCallbacks);
-	ProcResetDescriptorPool                                             :: #type proc "c" (device: Device, descriptorPool: DescriptorPool, flags: DescriptorPoolResetFlags) -> Result;
-	ProcAllocateDescriptorSets                                          :: #type proc "c" (device: Device, pAllocateInfo: ^DescriptorSetAllocateInfo, pDescriptorSets: ^DescriptorSet) -> Result;
-	ProcFreeDescriptorSets                                              :: #type proc "c" (device: Device, descriptorPool: DescriptorPool, descriptorSetCount: u32, pDescriptorSets: ^DescriptorSet) -> Result;
-	ProcUpdateDescriptorSets                                            :: #type proc "c" (device: Device, descriptorWriteCount: u32, pDescriptorWrites: ^WriteDescriptorSet, descriptorCopyCount: u32, pDescriptorCopies: ^CopyDescriptorSet);
-	ProcCreateFramebuffer                                               :: #type proc "c" (device: Device, pCreateInfo: ^FramebufferCreateInfo, pAllocator: ^AllocationCallbacks, pFramebuffer: ^Framebuffer) -> Result;
-	ProcDestroyFramebuffer                                              :: #type proc "c" (device: Device, framebuffer: Framebuffer, pAllocator: ^AllocationCallbacks);
-	ProcCreateRenderPass                                                :: #type proc "c" (device: Device, pCreateInfo: ^RenderPassCreateInfo, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result;
-	ProcDestroyRenderPass                                               :: #type proc "c" (device: Device, renderPass: RenderPass, pAllocator: ^AllocationCallbacks);
-	ProcGetRenderAreaGranularity                                        :: #type proc "c" (device: Device, renderPass: RenderPass, pGranularity: ^Extent2D);
-	ProcCreateCommandPool                                               :: #type proc "c" (device: Device, pCreateInfo: ^CommandPoolCreateInfo, pAllocator: ^AllocationCallbacks, pCommandPool: ^CommandPool) -> Result;
-	ProcDestroyCommandPool                                              :: #type proc "c" (device: Device, commandPool: CommandPool, pAllocator: ^AllocationCallbacks);
-	ProcResetCommandPool                                                :: #type proc "c" (device: Device, commandPool: CommandPool, flags: CommandPoolResetFlags) -> Result;
-	ProcAllocateCommandBuffers                                          :: #type proc "c" (device: Device, pAllocateInfo: ^CommandBufferAllocateInfo, pCommandBuffers: ^CommandBuffer) -> Result;
-	ProcFreeCommandBuffers                                              :: #type proc "c" (device: Device, commandPool: CommandPool, commandBufferCount: u32, pCommandBuffers: ^CommandBuffer);
-	ProcBeginCommandBuffer                                              :: #type proc "c" (commandBuffer: CommandBuffer, pBeginInfo: ^CommandBufferBeginInfo) -> Result;
-	ProcEndCommandBuffer                                                :: #type proc "c" (commandBuffer: CommandBuffer) -> Result;
-	ProcResetCommandBuffer                                              :: #type proc "c" (commandBuffer: CommandBuffer, flags: CommandBufferResetFlags) -> Result;
-	ProcCmdBindPipeline                                                 :: #type proc "c" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline);
-	ProcCmdSetViewport                                                  :: #type proc "c" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewports: ^Viewport);
-	ProcCmdSetScissor                                                   :: #type proc "c" (commandBuffer: CommandBuffer, firstScissor: u32, scissorCount: u32, pScissors: ^Rect2D);
-	ProcCmdSetLineWidth                                                 :: #type proc "c" (commandBuffer: CommandBuffer, lineWidth: f32);
-	ProcCmdSetDepthBias                                                 :: #type proc "c" (commandBuffer: CommandBuffer, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32);
-	ProcCmdSetBlendConstants                                            :: #type proc "c" (commandBuffer: CommandBuffer);
-	ProcCmdSetDepthBounds                                               :: #type proc "c" (commandBuffer: CommandBuffer, minDepthBounds: f32, maxDepthBounds: f32);
-	ProcCmdSetStencilCompareMask                                        :: #type proc "c" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, compareMask: u32);
-	ProcCmdSetStencilWriteMask                                          :: #type proc "c" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, writeMask: u32);
-	ProcCmdSetStencilReference                                          :: #type proc "c" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, reference: u32);
-	ProcCmdBindDescriptorSets                                           :: #type proc "c" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, firstSet: u32, descriptorSetCount: u32, pDescriptorSets: ^DescriptorSet, dynamicOffsetCount: u32, pDynamicOffsets: ^u32);
-	ProcCmdBindIndexBuffer                                              :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, indexType: IndexType);
-	ProcCmdBindVertexBuffers                                            :: #type proc "c" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize);
-	ProcCmdDraw                                                         :: #type proc "c" (commandBuffer: CommandBuffer, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32);
-	ProcCmdDrawIndexed                                                  :: #type proc "c" (commandBuffer: CommandBuffer, indexCount: u32, instanceCount: u32, firstIndex: u32, vertexOffset: i32, firstInstance: u32);
-	ProcCmdDrawIndirect                                                 :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32);
-	ProcCmdDrawIndexedIndirect                                          :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32);
-	ProcCmdDispatch                                                     :: #type proc "c" (commandBuffer: CommandBuffer, groupCountX: u32, groupCountY: u32, groupCountZ: u32);
-	ProcCmdDispatchIndirect                                             :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize);
-	ProcCmdCopyBuffer                                                   :: #type proc "c" (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstBuffer: Buffer, regionCount: u32, pRegions: ^BufferCopy);
-	ProcCmdCopyImage                                                    :: #type proc "c" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageCopy);
-	ProcCmdBlitImage                                                    :: #type proc "c" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageBlit, filter: Filter);
-	ProcCmdCopyBufferToImage                                            :: #type proc "c" (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^BufferImageCopy);
-	ProcCmdCopyImageToBuffer                                            :: #type proc "c" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstBuffer: Buffer, regionCount: u32, pRegions: ^BufferImageCopy);
-	ProcCmdUpdateBuffer                                                 :: #type proc "c" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, dataSize: DeviceSize, pData: rawptr);
-	ProcCmdFillBuffer                                                   :: #type proc "c" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, size: DeviceSize, data: u32);
-	ProcCmdClearColorImage                                              :: #type proc "c" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pColor: ^ClearColorValue, rangeCount: u32, pRanges: ^ImageSubresourceRange);
-	ProcCmdClearDepthStencilImage                                       :: #type proc "c" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pDepthStencil: ^ClearDepthStencilValue, rangeCount: u32, pRanges: ^ImageSubresourceRange);
-	ProcCmdClearAttachments                                             :: #type proc "c" (commandBuffer: CommandBuffer, attachmentCount: u32, pAttachments: ^ClearAttachment, rectCount: u32, pRects: ^ClearRect);
-	ProcCmdResolveImage                                                 :: #type proc "c" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageResolve);
-	ProcCmdSetEvent                                                     :: #type proc "c" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags);
-	ProcCmdResetEvent                                                   :: #type proc "c" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags);
-	ProcCmdWaitEvents                                                   :: #type proc "c" (commandBuffer: CommandBuffer, eventCount: u32, pEvents: ^Event, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, memoryBarrierCount: u32, pMemoryBarriers: ^MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: ^BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: ^ImageMemoryBarrier);
-	ProcCmdPipelineBarrier                                              :: #type proc "c" (commandBuffer: CommandBuffer, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, dependencyFlags: DependencyFlags, memoryBarrierCount: u32, pMemoryBarriers: ^MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: ^BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: ^ImageMemoryBarrier);
-	ProcCmdBeginQuery                                                   :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags);
-	ProcCmdEndQuery                                                     :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32);
-	ProcCmdResetQueryPool                                               :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32);
-	ProcCmdWriteTimestamp                                               :: #type proc "c" (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, queryPool: QueryPool, query: u32);
-	ProcCmdCopyQueryPoolResults                                         :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dstBuffer: Buffer, dstOffset: DeviceSize, stride: DeviceSize, flags: QueryResultFlags);
-	ProcCmdPushConstants                                                :: #type proc "c" (commandBuffer: CommandBuffer, layout: PipelineLayout, stageFlags: ShaderStageFlags, offset: u32, size: u32, pValues: rawptr);
-	ProcCmdBeginRenderPass                                              :: #type proc "c" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, contents: SubpassContents);
-	ProcCmdNextSubpass                                                  :: #type proc "c" (commandBuffer: CommandBuffer, contents: SubpassContents);
-	ProcCmdEndRenderPass                                                :: #type proc "c" (commandBuffer: CommandBuffer);
-	ProcCmdExecuteCommands                                              :: #type proc "c" (commandBuffer: CommandBuffer, commandBufferCount: u32, pCommandBuffers: ^CommandBuffer);
-	ProcEnumerateInstanceVersion                                        :: #type proc "c" (pApiVersion: ^u32) -> Result;
-	ProcBindBufferMemory2                                               :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindBufferMemoryInfo) -> Result;
-	ProcBindImageMemory2                                                :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindImageMemoryInfo) -> Result;
-	ProcGetDeviceGroupPeerMemoryFeatures                                :: #type proc "c" (device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: ^PeerMemoryFeatureFlags);
-	ProcCmdSetDeviceMask                                                :: #type proc "c" (commandBuffer: CommandBuffer, deviceMask: u32);
-	ProcCmdDispatchBase                                                 :: #type proc "c" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32);
-	ProcEnumeratePhysicalDeviceGroups                                   :: #type proc "c" (instance: Instance, pPhysicalDeviceGroupCount: ^u32, pPhysicalDeviceGroupProperties: ^PhysicalDeviceGroupProperties) -> Result;
-	ProcGetImageMemoryRequirements2                                     :: #type proc "c" (device: Device, pInfo: ^ImageMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2);
-	ProcGetBufferMemoryRequirements2                                    :: #type proc "c" (device: Device, pInfo: ^BufferMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2);
-	ProcGetImageSparseMemoryRequirements2                               :: #type proc "c" (device: Device, pInfo: ^ImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements2);
-	ProcGetPhysicalDeviceFeatures2                                      :: #type proc "c" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures2);
-	ProcGetPhysicalDeviceProperties2                                    :: #type proc "c" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties2);
-	ProcGetPhysicalDeviceFormatProperties2                              :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties2);
-	ProcGetPhysicalDeviceImageFormatProperties2                         :: #type proc "c" (physicalDevice: PhysicalDevice, pImageFormatInfo: ^PhysicalDeviceImageFormatInfo2, pImageFormatProperties: ^ImageFormatProperties2) -> Result;
-	ProcGetPhysicalDeviceQueueFamilyProperties2                         :: #type proc "c" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties2);
-	ProcGetPhysicalDeviceMemoryProperties2                              :: #type proc "c" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties2);
-	ProcGetPhysicalDeviceSparseImageFormatProperties2                   :: #type proc "c" (physicalDevice: PhysicalDevice, pFormatInfo: ^PhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties2);
-	ProcTrimCommandPool                                                 :: #type proc "c" (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags);
-	ProcGetDeviceQueue2                                                 :: #type proc "c" (device: Device, pQueueInfo: ^DeviceQueueInfo2, pQueue: ^Queue);
-	ProcCreateSamplerYcbcrConversion                                    :: #type proc "c" (device: Device, pCreateInfo: ^SamplerYcbcrConversionCreateInfo, pAllocator: ^AllocationCallbacks, pYcbcrConversion: ^SamplerYcbcrConversion) -> Result;
-	ProcDestroySamplerYcbcrConversion                                   :: #type proc "c" (device: Device, ycbcrConversion: SamplerYcbcrConversion, pAllocator: ^AllocationCallbacks);
-	ProcCreateDescriptorUpdateTemplate                                  :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result;
-	ProcDestroyDescriptorUpdateTemplate                                 :: #type proc "c" (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplate, pAllocator: ^AllocationCallbacks);
-	ProcUpdateDescriptorSetWithTemplate                                 :: #type proc "c" (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplate, pData: rawptr);
-	ProcGetPhysicalDeviceExternalBufferProperties                       :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalBufferInfo: ^PhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ^ExternalBufferProperties);
-	ProcGetPhysicalDeviceExternalFenceProperties                        :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalFenceInfo: ^PhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ^ExternalFenceProperties);
-	ProcGetPhysicalDeviceExternalSemaphoreProperties                    :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalSemaphoreInfo: ^PhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ^ExternalSemaphoreProperties);
-	ProcGetDescriptorSetLayoutSupport                                   :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pSupport: ^DescriptorSetLayoutSupport);
-	ProcCmdDrawIndirectCount                                            :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCmdDrawIndexedIndirectCount                                     :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCreateRenderPass2                                               :: #type proc "c" (device: Device, pCreateInfo: ^RenderPassCreateInfo2, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result;
-	ProcCmdBeginRenderPass2                                             :: #type proc "c" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, pSubpassBeginInfo: ^SubpassBeginInfo);
-	ProcCmdNextSubpass2                                                 :: #type proc "c" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo);
-	ProcCmdEndRenderPass2                                               :: #type proc "c" (commandBuffer: CommandBuffer, pSubpassEndInfo: ^SubpassEndInfo);
-	ProcResetQueryPool                                                  :: #type proc "c" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32);
-	ProcGetSemaphoreCounterValue                                        :: #type proc "c" (device: Device, semaphore: Semaphore, pValue: ^u64) -> Result;
-	ProcWaitSemaphores                                                  :: #type proc "c" (device: Device, pWaitInfo: ^SemaphoreWaitInfo, timeout: u64) -> Result;
-	ProcSignalSemaphore                                                 :: #type proc "c" (device: Device, pSignalInfo: ^SemaphoreSignalInfo) -> Result;
-	ProcGetBufferDeviceAddress                                          :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress;
-	ProcGetBufferOpaqueCaptureAddress                                   :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> u64;
-	ProcGetDeviceMemoryOpaqueCaptureAddress                             :: #type proc "c" (device: Device, pInfo: ^DeviceMemoryOpaqueCaptureAddressInfo) -> u64;
-	ProcDestroySurfaceKHR                                               :: #type proc "c" (instance: Instance, surface: SurfaceKHR, pAllocator: ^AllocationCallbacks);
-	ProcGetPhysicalDeviceSurfaceSupportKHR                              :: #type proc "c" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, surface: SurfaceKHR, pSupported: ^b32) -> Result;
-	ProcGetPhysicalDeviceSurfaceCapabilitiesKHR                         :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: ^SurfaceCapabilitiesKHR) -> Result;
-	ProcGetPhysicalDeviceSurfaceFormatsKHR                              :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceFormatCount: ^u32, pSurfaceFormats: ^SurfaceFormatKHR) -> Result;
-	ProcGetPhysicalDeviceSurfacePresentModesKHR                         :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pPresentModeCount: ^u32, pPresentModes: ^PresentModeKHR) -> Result;
-	ProcCreateSwapchainKHR                                              :: #type proc "c" (device: Device, pCreateInfo: ^SwapchainCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSwapchain: ^SwapchainKHR) -> Result;
-	ProcDestroySwapchainKHR                                             :: #type proc "c" (device: Device, swapchain: SwapchainKHR, pAllocator: ^AllocationCallbacks);
-	ProcGetSwapchainImagesKHR                                           :: #type proc "c" (device: Device, swapchain: SwapchainKHR, pSwapchainImageCount: ^u32, pSwapchainImages: ^Image) -> Result;
-	ProcAcquireNextImageKHR                                             :: #type proc "c" (device: Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence, pImageIndex: ^u32) -> Result;
-	ProcQueuePresentKHR                                                 :: #type proc "c" (queue: Queue, pPresentInfo: ^PresentInfoKHR) -> Result;
-	ProcGetDeviceGroupPresentCapabilitiesKHR                            :: #type proc "c" (device: Device, pDeviceGroupPresentCapabilities: ^DeviceGroupPresentCapabilitiesKHR) -> Result;
-	ProcGetDeviceGroupSurfacePresentModesKHR                            :: #type proc "c" (device: Device, surface: SurfaceKHR, pModes: ^DeviceGroupPresentModeFlagsKHR) -> Result;
-	ProcGetPhysicalDevicePresentRectanglesKHR                           :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pRectCount: ^u32, pRects: ^Rect2D) -> Result;
-	ProcAcquireNextImage2KHR                                            :: #type proc "c" (device: Device, pAcquireInfo: ^AcquireNextImageInfoKHR, pImageIndex: ^u32) -> Result;
-	ProcGetPhysicalDeviceDisplayPropertiesKHR                           :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPropertiesKHR) -> Result;
-	ProcGetPhysicalDeviceDisplayPlanePropertiesKHR                      :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPlanePropertiesKHR) -> Result;
-	ProcGetDisplayPlaneSupportedDisplaysKHR                             :: #type proc "c" (physicalDevice: PhysicalDevice, planeIndex: u32, pDisplayCount: ^u32, pDisplays: ^DisplayKHR) -> Result;
-	ProcGetDisplayModePropertiesKHR                                     :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: ^u32, pProperties: ^DisplayModePropertiesKHR) -> Result;
-	ProcCreateDisplayModeKHR                                            :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR, pCreateInfo: ^DisplayModeCreateInfoKHR, pAllocator: ^AllocationCallbacks, pMode: ^DisplayModeKHR) -> Result;
-	ProcGetDisplayPlaneCapabilitiesKHR                                  :: #type proc "c" (physicalDevice: PhysicalDevice, mode: DisplayModeKHR, planeIndex: u32, pCapabilities: ^DisplayPlaneCapabilitiesKHR) -> Result;
-	ProcCreateDisplayPlaneSurfaceKHR                                    :: #type proc "c" (instance: Instance, pCreateInfo: ^DisplaySurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcCreateSharedSwapchainsKHR                                       :: #type proc "c" (device: Device, swapchainCount: u32, pCreateInfos: ^SwapchainCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSwapchains: ^SwapchainKHR) -> Result;
-	ProcGetPhysicalDeviceFeatures2KHR                                   :: #type proc "c" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures2);
-	ProcGetPhysicalDeviceProperties2KHR                                 :: #type proc "c" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties2);
-	ProcGetPhysicalDeviceFormatProperties2KHR                           :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties2);
-	ProcGetPhysicalDeviceImageFormatProperties2KHR                      :: #type proc "c" (physicalDevice: PhysicalDevice, pImageFormatInfo: ^PhysicalDeviceImageFormatInfo2, pImageFormatProperties: ^ImageFormatProperties2) -> Result;
-	ProcGetPhysicalDeviceQueueFamilyProperties2KHR                      :: #type proc "c" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties2);
-	ProcGetPhysicalDeviceMemoryProperties2KHR                           :: #type proc "c" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties2);
-	ProcGetPhysicalDeviceSparseImageFormatProperties2KHR                :: #type proc "c" (physicalDevice: PhysicalDevice, pFormatInfo: ^PhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties2);
-	ProcGetDeviceGroupPeerMemoryFeaturesKHR                             :: #type proc "c" (device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: ^PeerMemoryFeatureFlags);
-	ProcCmdSetDeviceMaskKHR                                             :: #type proc "c" (commandBuffer: CommandBuffer, deviceMask: u32);
-	ProcCmdDispatchBaseKHR                                              :: #type proc "c" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32);
-	ProcTrimCommandPoolKHR                                              :: #type proc "c" (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags);
-	ProcEnumeratePhysicalDeviceGroupsKHR                                :: #type proc "c" (instance: Instance, pPhysicalDeviceGroupCount: ^u32, pPhysicalDeviceGroupProperties: ^PhysicalDeviceGroupProperties) -> Result;
-	ProcGetPhysicalDeviceExternalBufferPropertiesKHR                    :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalBufferInfo: ^PhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ^ExternalBufferProperties);
-	ProcGetMemoryFdKHR                                                  :: #type proc "c" (device: Device, pGetFdInfo: ^MemoryGetFdInfoKHR, pFd: ^c.int) -> Result;
-	ProcGetMemoryFdPropertiesKHR                                        :: #type proc "c" (device: Device, handleType: ExternalMemoryHandleTypeFlags, fd: c.int, pMemoryFdProperties: ^MemoryFdPropertiesKHR) -> Result;
-	ProcGetPhysicalDeviceExternalSemaphorePropertiesKHR                 :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalSemaphoreInfo: ^PhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ^ExternalSemaphoreProperties);
-	ProcImportSemaphoreFdKHR                                            :: #type proc "c" (device: Device, pImportSemaphoreFdInfo: ^ImportSemaphoreFdInfoKHR) -> Result;
-	ProcGetSemaphoreFdKHR                                               :: #type proc "c" (device: Device, pGetFdInfo: ^SemaphoreGetFdInfoKHR, pFd: ^c.int) -> Result;
-	ProcCmdPushDescriptorSetKHR                                         :: #type proc "c" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, set: u32, descriptorWriteCount: u32, pDescriptorWrites: ^WriteDescriptorSet);
-	ProcCmdPushDescriptorSetWithTemplateKHR                             :: #type proc "c" (commandBuffer: CommandBuffer, descriptorUpdateTemplate: DescriptorUpdateTemplate, layout: PipelineLayout, set: u32, pData: rawptr);
-	ProcCreateDescriptorUpdateTemplateKHR                               :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result;
-	ProcDestroyDescriptorUpdateTemplateKHR                              :: #type proc "c" (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplate, pAllocator: ^AllocationCallbacks);
-	ProcUpdateDescriptorSetWithTemplateKHR                              :: #type proc "c" (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplate, pData: rawptr);
-	ProcCreateRenderPass2KHR                                            :: #type proc "c" (device: Device, pCreateInfo: ^RenderPassCreateInfo2, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result;
-	ProcCmdBeginRenderPass2KHR                                          :: #type proc "c" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, pSubpassBeginInfo: ^SubpassBeginInfo);
-	ProcCmdNextSubpass2KHR                                              :: #type proc "c" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo);
-	ProcCmdEndRenderPass2KHR                                            :: #type proc "c" (commandBuffer: CommandBuffer, pSubpassEndInfo: ^SubpassEndInfo);
-	ProcGetSwapchainStatusKHR                                           :: #type proc "c" (device: Device, swapchain: SwapchainKHR) -> Result;
-	ProcGetPhysicalDeviceExternalFencePropertiesKHR                     :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalFenceInfo: ^PhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ^ExternalFenceProperties);
-	ProcImportFenceFdKHR                                                :: #type proc "c" (device: Device, pImportFenceFdInfo: ^ImportFenceFdInfoKHR) -> Result;
-	ProcGetFenceFdKHR                                                   :: #type proc "c" (device: Device, pGetFdInfo: ^FenceGetFdInfoKHR, pFd: ^c.int) -> Result;
-	ProcEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   :: #type proc "c" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, pCounterCount: ^u32, pCounters: ^PerformanceCounterKHR, pCounterDescriptions: ^PerformanceCounterDescriptionKHR) -> Result;
-	ProcGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR           :: #type proc "c" (physicalDevice: PhysicalDevice, pPerformanceQueryCreateInfo: ^QueryPoolPerformanceCreateInfoKHR, pNumPasses: ^u32);
-	ProcAcquireProfilingLockKHR                                         :: #type proc "c" (device: Device, pInfo: ^AcquireProfilingLockInfoKHR) -> Result;
-	ProcReleaseProfilingLockKHR                                         :: #type proc "c" (device: Device);
-	ProcGetPhysicalDeviceSurfaceCapabilities2KHR                        :: #type proc "c" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ^SurfaceCapabilities2KHR) -> Result;
-	ProcGetPhysicalDeviceSurfaceFormats2KHR                             :: #type proc "c" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ^u32, pSurfaceFormats: ^SurfaceFormat2KHR) -> Result;
-	ProcGetPhysicalDeviceDisplayProperties2KHR                          :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayProperties2KHR) -> Result;
-	ProcGetPhysicalDeviceDisplayPlaneProperties2KHR                     :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPlaneProperties2KHR) -> Result;
-	ProcGetDisplayModeProperties2KHR                                    :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: ^u32, pProperties: ^DisplayModeProperties2KHR) -> Result;
-	ProcGetDisplayPlaneCapabilities2KHR                                 :: #type proc "c" (physicalDevice: PhysicalDevice, pDisplayPlaneInfo: ^DisplayPlaneInfo2KHR, pCapabilities: ^DisplayPlaneCapabilities2KHR) -> Result;
-	ProcGetImageMemoryRequirements2KHR                                  :: #type proc "c" (device: Device, pInfo: ^ImageMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2);
-	ProcGetBufferMemoryRequirements2KHR                                 :: #type proc "c" (device: Device, pInfo: ^BufferMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2);
-	ProcGetImageSparseMemoryRequirements2KHR                            :: #type proc "c" (device: Device, pInfo: ^ImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements2);
-	ProcCreateSamplerYcbcrConversionKHR                                 :: #type proc "c" (device: Device, pCreateInfo: ^SamplerYcbcrConversionCreateInfo, pAllocator: ^AllocationCallbacks, pYcbcrConversion: ^SamplerYcbcrConversion) -> Result;
-	ProcDestroySamplerYcbcrConversionKHR                                :: #type proc "c" (device: Device, ycbcrConversion: SamplerYcbcrConversion, pAllocator: ^AllocationCallbacks);
-	ProcBindBufferMemory2KHR                                            :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindBufferMemoryInfo) -> Result;
-	ProcBindImageMemory2KHR                                             :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindImageMemoryInfo) -> Result;
-	ProcGetDescriptorSetLayoutSupportKHR                                :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pSupport: ^DescriptorSetLayoutSupport);
-	ProcCmdDrawIndirectCountKHR                                         :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCmdDrawIndexedIndirectCountKHR                                  :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcGetSemaphoreCounterValueKHR                                     :: #type proc "c" (device: Device, semaphore: Semaphore, pValue: ^u64) -> Result;
-	ProcWaitSemaphoresKHR                                               :: #type proc "c" (device: Device, pWaitInfo: ^SemaphoreWaitInfo, timeout: u64) -> Result;
-	ProcSignalSemaphoreKHR                                              :: #type proc "c" (device: Device, pSignalInfo: ^SemaphoreSignalInfo) -> Result;
-	ProcGetPhysicalDeviceFragmentShadingRatesKHR                        :: #type proc "c" (physicalDevice: PhysicalDevice, pFragmentShadingRateCount: ^u32, pFragmentShadingRates: ^PhysicalDeviceFragmentShadingRateKHR) -> Result;
-	ProcCmdSetFragmentShadingRateKHR                                    :: #type proc "c" (commandBuffer: CommandBuffer, pFragmentSize: ^Extent2D);
-	ProcWaitForPresentKHR                                               :: #type proc "c" (device: Device, swapchain: SwapchainKHR, presentId: u64, timeout: u64) -> Result;
-	ProcGetBufferDeviceAddressKHR                                       :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress;
-	ProcGetBufferOpaqueCaptureAddressKHR                                :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> u64;
-	ProcGetDeviceMemoryOpaqueCaptureAddressKHR                          :: #type proc "c" (device: Device, pInfo: ^DeviceMemoryOpaqueCaptureAddressInfo) -> u64;
-	ProcCreateDeferredOperationKHR                                      :: #type proc "c" (device: Device, pAllocator: ^AllocationCallbacks, pDeferredOperation: ^DeferredOperationKHR) -> Result;
-	ProcDestroyDeferredOperationKHR                                     :: #type proc "c" (device: Device, operation: DeferredOperationKHR, pAllocator: ^AllocationCallbacks);
-	ProcGetDeferredOperationMaxConcurrencyKHR                           :: #type proc "c" (device: Device, operation: DeferredOperationKHR) -> u32;
-	ProcGetDeferredOperationResultKHR                                   :: #type proc "c" (device: Device, operation: DeferredOperationKHR) -> Result;
-	ProcDeferredOperationJoinKHR                                        :: #type proc "c" (device: Device, operation: DeferredOperationKHR) -> Result;
-	ProcGetPipelineExecutablePropertiesKHR                              :: #type proc "c" (device: Device, pPipelineInfo: ^PipelineInfoKHR, pExecutableCount: ^u32, pProperties: ^PipelineExecutablePropertiesKHR) -> Result;
-	ProcGetPipelineExecutableStatisticsKHR                              :: #type proc "c" (device: Device, pExecutableInfo: ^PipelineExecutableInfoKHR, pStatisticCount: ^u32, pStatistics: ^PipelineExecutableStatisticKHR) -> Result;
-	ProcGetPipelineExecutableInternalRepresentationsKHR                 :: #type proc "c" (device: Device, pExecutableInfo: ^PipelineExecutableInfoKHR, pInternalRepresentationCount: ^u32, pInternalRepresentations: ^PipelineExecutableInternalRepresentationKHR) -> Result;
-	ProcCmdSetEvent2KHR                                                 :: #type proc "c" (commandBuffer: CommandBuffer, event: Event, pDependencyInfo: ^DependencyInfoKHR);
-	ProcCmdResetEvent2KHR                                               :: #type proc "c" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags2KHR);
-	ProcCmdWaitEvents2KHR                                               :: #type proc "c" (commandBuffer: CommandBuffer, eventCount: u32, pEvents: ^Event, pDependencyInfos: ^DependencyInfoKHR);
-	ProcCmdPipelineBarrier2KHR                                          :: #type proc "c" (commandBuffer: CommandBuffer, pDependencyInfo: ^DependencyInfoKHR);
-	ProcCmdWriteTimestamp2KHR                                           :: #type proc "c" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2KHR, queryPool: QueryPool, query: u32);
-	ProcQueueSubmit2KHR                                                 :: #type proc "c" (queue: Queue, submitCount: u32, pSubmits: ^SubmitInfo2KHR, fence: Fence) -> Result;
-	ProcCmdWriteBufferMarker2AMD                                        :: #type proc "c" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2KHR, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32);
-	ProcGetQueueCheckpointData2NV                                       :: #type proc "c" (queue: Queue, pCheckpointDataCount: ^u32, pCheckpointData: ^CheckpointData2NV);
-	ProcCmdCopyBuffer2KHR                                               :: #type proc "c" (commandBuffer: CommandBuffer, pCopyBufferInfo: ^CopyBufferInfo2KHR);
-	ProcCmdCopyImage2KHR                                                :: #type proc "c" (commandBuffer: CommandBuffer, pCopyImageInfo: ^CopyImageInfo2KHR);
-	ProcCmdCopyBufferToImage2KHR                                        :: #type proc "c" (commandBuffer: CommandBuffer, pCopyBufferToImageInfo: ^CopyBufferToImageInfo2KHR);
-	ProcCmdCopyImageToBuffer2KHR                                        :: #type proc "c" (commandBuffer: CommandBuffer, pCopyImageToBufferInfo: ^CopyImageToBufferInfo2KHR);
-	ProcCmdBlitImage2KHR                                                :: #type proc "c" (commandBuffer: CommandBuffer, pBlitImageInfo: ^BlitImageInfo2KHR);
-	ProcCmdResolveImage2KHR                                             :: #type proc "c" (commandBuffer: CommandBuffer, pResolveImageInfo: ^ResolveImageInfo2KHR);
-	ProcDebugReportCallbackEXT                                          :: #type proc "c" (flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring, pUserData: rawptr) -> b32;
-	ProcCreateDebugReportCallbackEXT                                    :: #type proc "c" (instance: Instance, pCreateInfo: ^DebugReportCallbackCreateInfoEXT, pAllocator: ^AllocationCallbacks, pCallback: ^DebugReportCallbackEXT) -> Result;
-	ProcDestroyDebugReportCallbackEXT                                   :: #type proc "c" (instance: Instance, callback: DebugReportCallbackEXT, pAllocator: ^AllocationCallbacks);
-	ProcDebugReportMessageEXT                                           :: #type proc "c" (instance: Instance, flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring);
-	ProcDebugMarkerSetObjectTagEXT                                      :: #type proc "c" (device: Device, pTagInfo: ^DebugMarkerObjectTagInfoEXT) -> Result;
-	ProcDebugMarkerSetObjectNameEXT                                     :: #type proc "c" (device: Device, pNameInfo: ^DebugMarkerObjectNameInfoEXT) -> Result;
-	ProcCmdDebugMarkerBeginEXT                                          :: #type proc "c" (commandBuffer: CommandBuffer, pMarkerInfo: ^DebugMarkerMarkerInfoEXT);
-	ProcCmdDebugMarkerEndEXT                                            :: #type proc "c" (commandBuffer: CommandBuffer);
-	ProcCmdDebugMarkerInsertEXT                                         :: #type proc "c" (commandBuffer: CommandBuffer, pMarkerInfo: ^DebugMarkerMarkerInfoEXT);
-	ProcCmdBindTransformFeedbackBuffersEXT                              :: #type proc "c" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize, pSizes: ^DeviceSize);
-	ProcCmdBeginTransformFeedbackEXT                                    :: #type proc "c" (commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: ^Buffer, pCounterBufferOffsets: ^DeviceSize);
-	ProcCmdEndTransformFeedbackEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: ^Buffer, pCounterBufferOffsets: ^DeviceSize);
-	ProcCmdBeginQueryIndexedEXT                                         :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags, index: u32);
-	ProcCmdEndQueryIndexedEXT                                           :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, index: u32);
-	ProcCmdDrawIndirectByteCountEXT                                     :: #type proc "c" (commandBuffer: CommandBuffer, instanceCount: u32, firstInstance: u32, counterBuffer: Buffer, counterBufferOffset: DeviceSize, counterOffset: u32, vertexStride: u32);
-	ProcCreateCuModuleNVX                                               :: #type proc "c" (device: Device, pCreateInfo: ^CuModuleCreateInfoNVX, pAllocator: ^AllocationCallbacks, pModule: ^CuModuleNVX) -> Result;
-	ProcCreateCuFunctionNVX                                             :: #type proc "c" (device: Device, pCreateInfo: ^CuFunctionCreateInfoNVX, pAllocator: ^AllocationCallbacks, pFunction: ^CuFunctionNVX) -> Result;
-	ProcDestroyCuModuleNVX                                              :: #type proc "c" (device: Device, module: CuModuleNVX, pAllocator: ^AllocationCallbacks);
-	ProcDestroyCuFunctionNVX                                            :: #type proc "c" (device: Device, function: CuFunctionNVX, pAllocator: ^AllocationCallbacks);
-	ProcCmdCuLaunchKernelNVX                                            :: #type proc "c" (commandBuffer: CommandBuffer, pLaunchInfo: ^CuLaunchInfoNVX);
-	ProcGetImageViewHandleNVX                                           :: #type proc "c" (device: Device, pInfo: ^ImageViewHandleInfoNVX) -> u32;
-	ProcGetImageViewAddressNVX                                          :: #type proc "c" (device: Device, imageView: ImageView, pProperties: ^ImageViewAddressPropertiesNVX) -> Result;
-	ProcCmdDrawIndirectCountAMD                                         :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCmdDrawIndexedIndirectCountAMD                                  :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcGetShaderInfoAMD                                                :: #type proc "c" (device: Device, pipeline: Pipeline, shaderStage: ShaderStageFlags, infoType: ShaderInfoTypeAMD, pInfoSize: ^int, pInfo: rawptr) -> Result;
-	ProcGetPhysicalDeviceExternalImageFormatPropertiesNV                :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, externalHandleType: ExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ^ExternalImageFormatPropertiesNV) -> Result;
-	ProcCmdBeginConditionalRenderingEXT                                 :: #type proc "c" (commandBuffer: CommandBuffer, pConditionalRenderingBegin: ^ConditionalRenderingBeginInfoEXT);
-	ProcCmdEndConditionalRenderingEXT                                   :: #type proc "c" (commandBuffer: CommandBuffer);
-	ProcCmdSetViewportWScalingNV                                        :: #type proc "c" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewportWScalings: ^ViewportWScalingNV);
-	ProcReleaseDisplayEXT                                               :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result;
-	ProcGetPhysicalDeviceSurfaceCapabilities2EXT                        :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: ^SurfaceCapabilities2EXT) -> Result;
-	ProcDisplayPowerControlEXT                                          :: #type proc "c" (device: Device, display: DisplayKHR, pDisplayPowerInfo: ^DisplayPowerInfoEXT) -> Result;
-	ProcRegisterDeviceEventEXT                                          :: #type proc "c" (device: Device, pDeviceEventInfo: ^DeviceEventInfoEXT, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result;
-	ProcRegisterDisplayEventEXT                                         :: #type proc "c" (device: Device, display: DisplayKHR, pDisplayEventInfo: ^DisplayEventInfoEXT, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result;
-	ProcGetSwapchainCounterEXT                                          :: #type proc "c" (device: Device, swapchain: SwapchainKHR, counter: SurfaceCounterFlagsEXT, pCounterValue: ^u64) -> Result;
-	ProcGetRefreshCycleDurationGOOGLE                                   :: #type proc "c" (device: Device, swapchain: SwapchainKHR, pDisplayTimingProperties: ^RefreshCycleDurationGOOGLE) -> Result;
-	ProcGetPastPresentationTimingGOOGLE                                 :: #type proc "c" (device: Device, swapchain: SwapchainKHR, pPresentationTimingCount: ^u32, pPresentationTimings: ^PastPresentationTimingGOOGLE) -> Result;
-	ProcCmdSetDiscardRectangleEXT                                       :: #type proc "c" (commandBuffer: CommandBuffer, firstDiscardRectangle: u32, discardRectangleCount: u32, pDiscardRectangles: ^Rect2D);
-	ProcSetHdrMetadataEXT                                               :: #type proc "c" (device: Device, swapchainCount: u32, pSwapchains: ^SwapchainKHR, pMetadata: ^HdrMetadataEXT);
-	ProcDebugUtilsMessengerCallbackEXT                                  :: #type proc "c" (messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT, pUserData: rawptr) -> b32;
-	ProcSetDebugUtilsObjectNameEXT                                      :: #type proc "c" (device: Device, pNameInfo: ^DebugUtilsObjectNameInfoEXT) -> Result;
-	ProcSetDebugUtilsObjectTagEXT                                       :: #type proc "c" (device: Device, pTagInfo: ^DebugUtilsObjectTagInfoEXT) -> Result;
-	ProcQueueBeginDebugUtilsLabelEXT                                    :: #type proc "c" (queue: Queue, pLabelInfo: ^DebugUtilsLabelEXT);
-	ProcQueueEndDebugUtilsLabelEXT                                      :: #type proc "c" (queue: Queue);
-	ProcQueueInsertDebugUtilsLabelEXT                                   :: #type proc "c" (queue: Queue, pLabelInfo: ^DebugUtilsLabelEXT);
-	ProcCmdBeginDebugUtilsLabelEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT);
-	ProcCmdEndDebugUtilsLabelEXT                                        :: #type proc "c" (commandBuffer: CommandBuffer);
-	ProcCmdInsertDebugUtilsLabelEXT                                     :: #type proc "c" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT);
-	ProcCreateDebugUtilsMessengerEXT                                    :: #type proc "c" (instance: Instance, pCreateInfo: ^DebugUtilsMessengerCreateInfoEXT, pAllocator: ^AllocationCallbacks, pMessenger: ^DebugUtilsMessengerEXT) -> Result;
-	ProcDestroyDebugUtilsMessengerEXT                                   :: #type proc "c" (instance: Instance, messenger: DebugUtilsMessengerEXT, pAllocator: ^AllocationCallbacks);
-	ProcSubmitDebugUtilsMessageEXT                                      :: #type proc "c" (instance: Instance, messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT);
-	ProcCmdSetSampleLocationsEXT                                        :: #type proc "c" (commandBuffer: CommandBuffer, pSampleLocationsInfo: ^SampleLocationsInfoEXT);
-	ProcGetPhysicalDeviceMultisamplePropertiesEXT                       :: #type proc "c" (physicalDevice: PhysicalDevice, samples: SampleCountFlags, pMultisampleProperties: ^MultisamplePropertiesEXT);
-	ProcGetImageDrmFormatModifierPropertiesEXT                          :: #type proc "c" (device: Device, image: Image, pProperties: ^ImageDrmFormatModifierPropertiesEXT) -> Result;
-	ProcCreateValidationCacheEXT                                        :: #type proc "c" (device: Device, pCreateInfo: ^ValidationCacheCreateInfoEXT, pAllocator: ^AllocationCallbacks, pValidationCache: ^ValidationCacheEXT) -> Result;
-	ProcDestroyValidationCacheEXT                                       :: #type proc "c" (device: Device, validationCache: ValidationCacheEXT, pAllocator: ^AllocationCallbacks);
-	ProcMergeValidationCachesEXT                                        :: #type proc "c" (device: Device, dstCache: ValidationCacheEXT, srcCacheCount: u32, pSrcCaches: ^ValidationCacheEXT) -> Result;
-	ProcGetValidationCacheDataEXT                                       :: #type proc "c" (device: Device, validationCache: ValidationCacheEXT, pDataSize: ^int, pData: rawptr) -> Result;
-	ProcCmdBindShadingRateImageNV                                       :: #type proc "c" (commandBuffer: CommandBuffer, imageView: ImageView, imageLayout: ImageLayout);
-	ProcCmdSetViewportShadingRatePaletteNV                              :: #type proc "c" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pShadingRatePalettes: ^ShadingRatePaletteNV);
-	ProcCmdSetCoarseSampleOrderNV                                       :: #type proc "c" (commandBuffer: CommandBuffer, sampleOrderType: CoarseSampleOrderTypeNV, customSampleOrderCount: u32, pCustomSampleOrders: ^CoarseSampleOrderCustomNV);
-	ProcCreateAccelerationStructureNV                                   :: #type proc "c" (device: Device, pCreateInfo: ^AccelerationStructureCreateInfoNV, pAllocator: ^AllocationCallbacks, pAccelerationStructure: ^AccelerationStructureNV) -> Result;
-	ProcDestroyAccelerationStructureNV                                  :: #type proc "c" (device: Device, accelerationStructure: AccelerationStructureNV, pAllocator: ^AllocationCallbacks);
-	ProcGetAccelerationStructureMemoryRequirementsNV                    :: #type proc "c" (device: Device, pInfo: ^AccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ^MemoryRequirements2KHR);
-	ProcBindAccelerationStructureMemoryNV                               :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindAccelerationStructureMemoryInfoNV) -> Result;
-	ProcCmdBuildAccelerationStructureNV                                 :: #type proc "c" (commandBuffer: CommandBuffer, pInfo: ^AccelerationStructureInfoNV, instanceData: Buffer, instanceOffset: DeviceSize, update: b32, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratchOffset: DeviceSize);
-	ProcCmdCopyAccelerationStructureNV                                  :: #type proc "c" (commandBuffer: CommandBuffer, dst: AccelerationStructureNV, src: AccelerationStructureNV, mode: CopyAccelerationStructureModeKHR);
-	ProcCmdTraceRaysNV                                                  :: #type proc "c" (commandBuffer: CommandBuffer, raygenShaderBindingTableBuffer: Buffer, raygenShaderBindingOffset: DeviceSize, missShaderBindingTableBuffer: Buffer, missShaderBindingOffset: DeviceSize, missShaderBindingStride: DeviceSize, hitShaderBindingTableBuffer: Buffer, hitShaderBindingOffset: DeviceSize, hitShaderBindingStride: DeviceSize, callableShaderBindingTableBuffer: Buffer, callableShaderBindingOffset: DeviceSize, callableShaderBindingStride: DeviceSize, width: u32, height: u32, depth: u32);
-	ProcCreateRayTracingPipelinesNV                                     :: #type proc "c" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^RayTracingPipelineCreateInfoNV, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result;
-	ProcGetRayTracingShaderGroupHandlesKHR                              :: #type proc "c" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result;
-	ProcGetRayTracingShaderGroupHandlesNV                               :: #type proc "c" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result;
-	ProcGetAccelerationStructureHandleNV                                :: #type proc "c" (device: Device, accelerationStructure: AccelerationStructureNV, dataSize: int, pData: rawptr) -> Result;
-	ProcCmdWriteAccelerationStructuresPropertiesNV                      :: #type proc "c" (commandBuffer: CommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureNV, queryType: QueryType, queryPool: QueryPool, firstQuery: u32);
-	ProcCompileDeferredNV                                               :: #type proc "c" (device: Device, pipeline: Pipeline, shader: u32) -> Result;
-	ProcGetMemoryHostPointerPropertiesEXT                               :: #type proc "c" (device: Device, handleType: ExternalMemoryHandleTypeFlags, pHostPointer: rawptr, pMemoryHostPointerProperties: ^MemoryHostPointerPropertiesEXT) -> Result;
-	ProcCmdWriteBufferMarkerAMD                                         :: #type proc "c" (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32);
-	ProcGetPhysicalDeviceCalibrateableTimeDomainsEXT                    :: #type proc "c" (physicalDevice: PhysicalDevice, pTimeDomainCount: ^u32, pTimeDomains: ^TimeDomainEXT) -> Result;
-	ProcGetCalibratedTimestampsEXT                                      :: #type proc "c" (device: Device, timestampCount: u32, pTimestampInfos: ^CalibratedTimestampInfoEXT, pTimestamps: ^u64, pMaxDeviation: ^u64) -> Result;
-	ProcCmdDrawMeshTasksNV                                              :: #type proc "c" (commandBuffer: CommandBuffer, taskCount: u32, firstTask: u32);
-	ProcCmdDrawMeshTasksIndirectNV                                      :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32);
-	ProcCmdDrawMeshTasksIndirectCountNV                                 :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32);
-	ProcCmdSetExclusiveScissorNV                                        :: #type proc "c" (commandBuffer: CommandBuffer, firstExclusiveScissor: u32, exclusiveScissorCount: u32, pExclusiveScissors: ^Rect2D);
-	ProcCmdSetCheckpointNV                                              :: #type proc "c" (commandBuffer: CommandBuffer, pCheckpointMarker: rawptr);
-	ProcGetQueueCheckpointDataNV                                        :: #type proc "c" (queue: Queue, pCheckpointDataCount: ^u32, pCheckpointData: ^CheckpointDataNV);
-	ProcInitializePerformanceApiINTEL                                   :: #type proc "c" (device: Device, pInitializeInfo: ^InitializePerformanceApiInfoINTEL) -> Result;
-	ProcUninitializePerformanceApiINTEL                                 :: #type proc "c" (device: Device);
-	ProcCmdSetPerformanceMarkerINTEL                                    :: #type proc "c" (commandBuffer: CommandBuffer, pMarkerInfo: ^PerformanceMarkerInfoINTEL) -> Result;
-	ProcCmdSetPerformanceStreamMarkerINTEL                              :: #type proc "c" (commandBuffer: CommandBuffer, pMarkerInfo: ^PerformanceStreamMarkerInfoINTEL) -> Result;
-	ProcCmdSetPerformanceOverrideINTEL                                  :: #type proc "c" (commandBuffer: CommandBuffer, pOverrideInfo: ^PerformanceOverrideInfoINTEL) -> Result;
-	ProcAcquirePerformanceConfigurationINTEL                            :: #type proc "c" (device: Device, pAcquireInfo: ^PerformanceConfigurationAcquireInfoINTEL, pConfiguration: ^PerformanceConfigurationINTEL) -> Result;
-	ProcReleasePerformanceConfigurationINTEL                            :: #type proc "c" (device: Device, configuration: PerformanceConfigurationINTEL) -> Result;
-	ProcQueueSetPerformanceConfigurationINTEL                           :: #type proc "c" (queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result;
-	ProcGetPerformanceParameterINTEL                                    :: #type proc "c" (device: Device, parameter: PerformanceParameterTypeINTEL, pValue: ^PerformanceValueINTEL) -> Result;
-	ProcSetLocalDimmingAMD                                              :: #type proc "c" (device: Device, swapChain: SwapchainKHR, localDimmingEnable: b32);
-	ProcGetBufferDeviceAddressEXT                                       :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress;
-	ProcGetPhysicalDeviceToolPropertiesEXT                              :: #type proc "c" (physicalDevice: PhysicalDevice, pToolCount: ^u32, pToolProperties: ^PhysicalDeviceToolPropertiesEXT) -> Result;
-	ProcGetPhysicalDeviceCooperativeMatrixPropertiesNV                  :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^CooperativeMatrixPropertiesNV) -> Result;
-	ProcGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: #type proc "c" (physicalDevice: PhysicalDevice, pCombinationCount: ^u32, pCombinations: ^FramebufferMixedSamplesCombinationNV) -> Result;
-	ProcCreateHeadlessSurfaceEXT                                        :: #type proc "c" (instance: Instance, pCreateInfo: ^HeadlessSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcCmdSetLineStippleEXT                                            :: #type proc "c" (commandBuffer: CommandBuffer, lineStippleFactor: u32, lineStipplePattern: u16);
-	ProcResetQueryPoolEXT                                               :: #type proc "c" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32);
-	ProcCmdSetCullModeEXT                                               :: #type proc "c" (commandBuffer: CommandBuffer, cullMode: CullModeFlags);
-	ProcCmdSetFrontFaceEXT                                              :: #type proc "c" (commandBuffer: CommandBuffer, frontFace: FrontFace);
-	ProcCmdSetPrimitiveTopologyEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, primitiveTopology: PrimitiveTopology);
-	ProcCmdSetViewportWithCountEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, viewportCount: u32, pViewports: ^Viewport);
-	ProcCmdSetScissorWithCountEXT                                       :: #type proc "c" (commandBuffer: CommandBuffer, scissorCount: u32, pScissors: ^Rect2D);
-	ProcCmdBindVertexBuffers2EXT                                        :: #type proc "c" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize, pSizes: ^DeviceSize, pStrides: ^DeviceSize);
-	ProcCmdSetDepthTestEnableEXT                                        :: #type proc "c" (commandBuffer: CommandBuffer, depthTestEnable: b32);
-	ProcCmdSetDepthWriteEnableEXT                                       :: #type proc "c" (commandBuffer: CommandBuffer, depthWriteEnable: b32);
-	ProcCmdSetDepthCompareOpEXT                                         :: #type proc "c" (commandBuffer: CommandBuffer, depthCompareOp: CompareOp);
-	ProcCmdSetDepthBoundsTestEnableEXT                                  :: #type proc "c" (commandBuffer: CommandBuffer, depthBoundsTestEnable: b32);
-	ProcCmdSetStencilTestEnableEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, stencilTestEnable: b32);
-	ProcCmdSetStencilOpEXT                                              :: #type proc "c" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, failOp: StencilOp, passOp: StencilOp, depthFailOp: StencilOp, compareOp: CompareOp);
-	ProcGetGeneratedCommandsMemoryRequirementsNV                        :: #type proc "c" (device: Device, pInfo: ^GeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ^MemoryRequirements2);
-	ProcCmdPreprocessGeneratedCommandsNV                                :: #type proc "c" (commandBuffer: CommandBuffer, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV);
-	ProcCmdExecuteGeneratedCommandsNV                                   :: #type proc "c" (commandBuffer: CommandBuffer, isPreprocessed: b32, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV);
-	ProcCmdBindPipelineShaderGroupNV                                    :: #type proc "c" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline, groupIndex: u32);
-	ProcCreateIndirectCommandsLayoutNV                                  :: #type proc "c" (device: Device, pCreateInfo: ^IndirectCommandsLayoutCreateInfoNV, pAllocator: ^AllocationCallbacks, pIndirectCommandsLayout: ^IndirectCommandsLayoutNV) -> Result;
-	ProcDestroyIndirectCommandsLayoutNV                                 :: #type proc "c" (device: Device, indirectCommandsLayout: IndirectCommandsLayoutNV, pAllocator: ^AllocationCallbacks);
-	ProcDeviceMemoryReportCallbackEXT                                   :: #type proc "c" (pCallbackData: ^DeviceMemoryReportCallbackDataEXT, pUserData: rawptr);
-	ProcAcquireDrmDisplayEXT                                            :: #type proc "c" (physicalDevice: PhysicalDevice, drmFd: i32, display: DisplayKHR) -> Result;
-	ProcGetDrmDisplayEXT                                                :: #type proc "c" (physicalDevice: PhysicalDevice, drmFd: i32, connectorId: u32, display: ^DisplayKHR) -> Result;
-	ProcCreatePrivateDataSlotEXT                                        :: #type proc "c" (device: Device, pCreateInfo: ^PrivateDataSlotCreateInfoEXT, pAllocator: ^AllocationCallbacks, pPrivateDataSlot: ^PrivateDataSlotEXT) -> Result;
-	ProcDestroyPrivateDataSlotEXT                                       :: #type proc "c" (device: Device, privateDataSlot: PrivateDataSlotEXT, pAllocator: ^AllocationCallbacks);
-	ProcSetPrivateDataEXT                                               :: #type proc "c" (device: Device, objectType: ObjectType, objectHandle: u64, privateDataSlot: PrivateDataSlotEXT, data: u64) -> Result;
-	ProcGetPrivateDataEXT                                               :: #type proc "c" (device: Device, objectType: ObjectType, objectHandle: u64, privateDataSlot: PrivateDataSlotEXT, pData: ^u64);
-	ProcCmdSetFragmentShadingRateEnumNV                                 :: #type proc "c" (commandBuffer: CommandBuffer, shadingRate: FragmentShadingRateNV);
-	ProcAcquireWinrtDisplayNV                                           :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result;
-	ProcGetWinrtDisplayNV                                               :: #type proc "c" (physicalDevice: PhysicalDevice, deviceRelativeId: u32, pDisplay: ^DisplayKHR) -> Result;
-	ProcCmdSetVertexInputEXT                                            :: #type proc "c" (commandBuffer: CommandBuffer, vertexBindingDescriptionCount: u32, pVertexBindingDescriptions: ^VertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: u32, pVertexAttributeDescriptions: ^VertexInputAttributeDescription2EXT);
-	ProcGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI                   :: #type proc "c" (device: Device, renderpass: RenderPass, pMaxWorkgroupSize: ^Extent2D) -> Result;
-	ProcCmdSubpassShadingHUAWEI                                         :: #type proc "c" (commandBuffer: CommandBuffer);
-	ProcCmdBindInvocationMaskHUAWEI                                     :: #type proc "c" (commandBuffer: CommandBuffer, imageView: ImageView, imageLayout: ImageLayout);
-	ProcGetMemoryRemoteAddressNV                                        :: #type proc "c" (device: Device, pMemoryGetRemoteAddressInfo: ^MemoryGetRemoteAddressInfoNV, pAddress: ^RemoteAddressNV) -> Result;
-	ProcCmdSetPatchControlPointsEXT                                     :: #type proc "c" (commandBuffer: CommandBuffer, patchControlPoints: u32);
-	ProcCmdSetRasterizerDiscardEnableEXT                                :: #type proc "c" (commandBuffer: CommandBuffer, rasterizerDiscardEnable: b32);
-	ProcCmdSetDepthBiasEnableEXT                                        :: #type proc "c" (commandBuffer: CommandBuffer, depthBiasEnable: b32);
-	ProcCmdSetLogicOpEXT                                                :: #type proc "c" (commandBuffer: CommandBuffer, logicOp: LogicOp);
-	ProcCmdSetPrimitiveRestartEnableEXT                                 :: #type proc "c" (commandBuffer: CommandBuffer, primitiveRestartEnable: b32);
-	ProcCmdDrawMultiEXT                                                 :: #type proc "c" (commandBuffer: CommandBuffer, drawCount: u32, pVertexInfo: ^MultiDrawInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32);
-	ProcCmdDrawMultiIndexedEXT                                          :: #type proc "c" (commandBuffer: CommandBuffer, drawCount: u32, pIndexInfo: ^MultiDrawIndexedInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32, pVertexOffset: ^i32);
-	ProcCreateAccelerationStructureKHR                                  :: #type proc "c" (device: Device, pCreateInfo: ^AccelerationStructureCreateInfoKHR, pAllocator: ^AllocationCallbacks, pAccelerationStructure: ^AccelerationStructureKHR) -> Result;
-	ProcDestroyAccelerationStructureKHR                                 :: #type proc "c" (device: Device, accelerationStructure: AccelerationStructureKHR, pAllocator: ^AllocationCallbacks);
-	ProcCmdBuildAccelerationStructuresKHR                               :: #type proc "c" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^^AccelerationStructureBuildRangeInfoKHR);
-	ProcCmdBuildAccelerationStructuresIndirectKHR                       :: #type proc "c" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ^DeviceAddress, pIndirectStrides: ^u32, ppMaxPrimitiveCounts: ^^u32);
-	ProcBuildAccelerationStructuresKHR                                  :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^^AccelerationStructureBuildRangeInfoKHR) -> Result;
-	ProcCopyAccelerationStructureKHR                                    :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureInfoKHR) -> Result;
-	ProcCopyAccelerationStructureToMemoryKHR                            :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR) -> Result;
-	ProcCopyMemoryToAccelerationStructureKHR                            :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyMemoryToAccelerationStructureInfoKHR) -> Result;
-	ProcWriteAccelerationStructuresPropertiesKHR                        :: #type proc "c" (device: Device, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureKHR, queryType: QueryType, dataSize: int, pData: rawptr, stride: int) -> Result;
-	ProcCmdCopyAccelerationStructureKHR                                 :: #type proc "c" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureInfoKHR);
-	ProcCmdCopyAccelerationStructureToMemoryKHR                         :: #type proc "c" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR);
-	ProcCmdCopyMemoryToAccelerationStructureKHR                         :: #type proc "c" (commandBuffer: CommandBuffer, pInfo: ^CopyMemoryToAccelerationStructureInfoKHR);
-	ProcGetAccelerationStructureDeviceAddressKHR                        :: #type proc "c" (device: Device, pInfo: ^AccelerationStructureDeviceAddressInfoKHR) -> DeviceAddress;
-	ProcCmdWriteAccelerationStructuresPropertiesKHR                     :: #type proc "c" (commandBuffer: CommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureKHR, queryType: QueryType, queryPool: QueryPool, firstQuery: u32);
-	ProcGetDeviceAccelerationStructureCompatibilityKHR                  :: #type proc "c" (device: Device, pVersionInfo: ^AccelerationStructureVersionInfoKHR, pCompatibility: ^AccelerationStructureCompatibilityKHR);
-	ProcGetAccelerationStructureBuildSizesKHR                           :: #type proc "c" (device: Device, buildType: AccelerationStructureBuildTypeKHR, pBuildInfo: ^AccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ^u32, pSizeInfo: ^AccelerationStructureBuildSizesInfoKHR);
-	ProcCmdTraceRaysKHR                                                 :: #type proc "c" (commandBuffer: CommandBuffer, pRaygenShaderBindingTable: ^StridedDeviceAddressRegionKHR, pMissShaderBindingTable: ^StridedDeviceAddressRegionKHR, pHitShaderBindingTable: ^StridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ^StridedDeviceAddressRegionKHR, width: u32, height: u32, depth: u32);
-	ProcCreateRayTracingPipelinesKHR                                    :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^RayTracingPipelineCreateInfoKHR, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result;
-	ProcGetRayTracingCaptureReplayShaderGroupHandlesKHR                 :: #type proc "c" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result;
-	ProcCmdTraceRaysIndirectKHR                                         :: #type proc "c" (commandBuffer: CommandBuffer, pRaygenShaderBindingTable: ^StridedDeviceAddressRegionKHR, pMissShaderBindingTable: ^StridedDeviceAddressRegionKHR, pHitShaderBindingTable: ^StridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ^StridedDeviceAddressRegionKHR, indirectDeviceAddress: DeviceAddress);
-	ProcGetRayTracingShaderGroupStackSizeKHR                            :: #type proc "c" (device: Device, pipeline: Pipeline, group: u32, groupShader: ShaderGroupShaderKHR) -> DeviceSize;
-	ProcCmdSetRayTracingPipelineStackSizeKHR                            :: #type proc "c" (commandBuffer: CommandBuffer, pipelineStackSize: u32);
-	ProcCreateWin32SurfaceKHR                                           :: #type proc "c" (instance: Instance, pCreateInfo: ^Win32SurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcGetPhysicalDeviceWin32PresentationSupportKHR                    :: #type proc "c" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32) -> b32;
-	ProcGetMemoryWin32HandleKHR                                         :: #type proc "c" (device: Device, pGetWin32HandleInfo: ^MemoryGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result;
-	ProcGetMemoryWin32HandlePropertiesKHR                               :: #type proc "c" (device: Device, handleType: ExternalMemoryHandleTypeFlags, handle: HANDLE, pMemoryWin32HandleProperties: ^MemoryWin32HandlePropertiesKHR) -> Result;
-	ProcImportSemaphoreWin32HandleKHR                                   :: #type proc "c" (device: Device, pImportSemaphoreWin32HandleInfo: ^ImportSemaphoreWin32HandleInfoKHR) -> Result;
-	ProcGetSemaphoreWin32HandleKHR                                      :: #type proc "c" (device: Device, pGetWin32HandleInfo: ^SemaphoreGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result;
-	ProcImportFenceWin32HandleKHR                                       :: #type proc "c" (device: Device, pImportFenceWin32HandleInfo: ^ImportFenceWin32HandleInfoKHR) -> Result;
-	ProcGetFenceWin32HandleKHR                                          :: #type proc "c" (device: Device, pGetWin32HandleInfo: ^FenceGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result;
-	ProcGetMemoryWin32HandleNV                                          :: #type proc "c" (device: Device, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlagsNV, pHandle: ^HANDLE) -> Result;
-	ProcGetPhysicalDeviceSurfacePresentModes2EXT                        :: #type proc "c" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pPresentModeCount: ^u32, pPresentModes: ^PresentModeKHR) -> Result;
-	ProcAcquireFullScreenExclusiveModeEXT                               :: #type proc "c" (device: Device, swapchain: SwapchainKHR) -> Result;
-	ProcReleaseFullScreenExclusiveModeEXT                               :: #type proc "c" (device: Device, swapchain: SwapchainKHR) -> Result;
-	ProcGetDeviceGroupSurfacePresentModes2EXT                           :: #type proc "c" (device: Device, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pModes: ^DeviceGroupPresentModeFlagsKHR) -> Result;
-	ProcCreateMetalSurfaceEXT                                           :: #type proc "c" (instance: Instance, pCreateInfo: ^MetalSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcCreateMacOSSurfaceMVK                                           :: #type proc "c" (instance: Instance, pCreateInfo: ^MacOSSurfaceCreateInfoMVK, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
-	ProcCreateIOSSurfaceMVK                                             :: #type proc "c" (instance: Instance, pCreateInfo: ^IOSSurfaceCreateInfoMVK, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result;
+	ProcAllocationFunction                                              :: #type proc "c" (pUserData: rawptr, size: int, alignment: int, allocationScope: SystemAllocationScope) -> rawptr
+	ProcFreeFunction                                                    :: #type proc "c" (pUserData: rawptr, pMemory: rawptr)
+	ProcInternalAllocationNotification                                  :: #type proc "c" (pUserData: rawptr, size: int, allocationType: InternalAllocationType, allocationScope: SystemAllocationScope)
+	ProcInternalFreeNotification                                        :: #type proc "c" (pUserData: rawptr, size: int, allocationType: InternalAllocationType, allocationScope: SystemAllocationScope)
+	ProcReallocationFunction                                            :: #type proc "c" (pUserData: rawptr, pOriginal: rawptr, size: int, alignment: int, allocationScope: SystemAllocationScope) -> rawptr
+	ProcVoidFunction                                                    :: #type proc "c" ()
+	ProcCreateInstance                                                  :: #type proc "c" (pCreateInfo: ^InstanceCreateInfo, pAllocator: ^AllocationCallbacks, pInstance: ^Instance) -> Result
+	ProcDestroyInstance                                                 :: #type proc "c" (instance: Instance, pAllocator: ^AllocationCallbacks)
+	ProcEnumeratePhysicalDevices                                        :: #type proc "c" (instance: Instance, pPhysicalDeviceCount: ^u32, pPhysicalDevices: ^PhysicalDevice) -> Result
+	ProcGetPhysicalDeviceFeatures                                       :: #type proc "c" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures)
+	ProcGetPhysicalDeviceFormatProperties                               :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties)
+	ProcGetPhysicalDeviceImageFormatProperties                          :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, pImageFormatProperties: ^ImageFormatProperties) -> Result
+	ProcGetPhysicalDeviceProperties                                     :: #type proc "c" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties)
+	ProcGetPhysicalDeviceQueueFamilyProperties                          :: #type proc "c" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties)
+	ProcGetPhysicalDeviceMemoryProperties                               :: #type proc "c" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties)
+	ProcGetInstanceProcAddr                                             :: #type proc "c" (instance: Instance, pName: cstring) -> ProcVoidFunction
+	ProcGetDeviceProcAddr                                               :: #type proc "c" (device: Device, pName: cstring) -> ProcVoidFunction
+	ProcCreateDevice                                                    :: #type proc "c" (physicalDevice: PhysicalDevice, pCreateInfo: ^DeviceCreateInfo, pAllocator: ^AllocationCallbacks, pDevice: ^Device) -> Result
+	ProcDestroyDevice                                                   :: #type proc "c" (device: Device, pAllocator: ^AllocationCallbacks)
+	ProcEnumerateInstanceExtensionProperties                            :: #type proc "c" (pLayerName: cstring, pPropertyCount: ^u32, pProperties: ^ExtensionProperties) -> Result
+	ProcEnumerateDeviceExtensionProperties                              :: #type proc "c" (physicalDevice: PhysicalDevice, pLayerName: cstring, pPropertyCount: ^u32, pProperties: ^ExtensionProperties) -> Result
+	ProcEnumerateInstanceLayerProperties                                :: #type proc "c" (pPropertyCount: ^u32, pProperties: ^LayerProperties) -> Result
+	ProcEnumerateDeviceLayerProperties                                  :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^LayerProperties) -> Result
+	ProcGetDeviceQueue                                                  :: #type proc "c" (device: Device, queueFamilyIndex: u32, queueIndex: u32, pQueue: ^Queue)
+	ProcQueueSubmit                                                     :: #type proc "c" (queue: Queue, submitCount: u32, pSubmits: ^SubmitInfo, fence: Fence) -> Result
+	ProcQueueWaitIdle                                                   :: #type proc "c" (queue: Queue) -> Result
+	ProcDeviceWaitIdle                                                  :: #type proc "c" (device: Device) -> Result
+	ProcAllocateMemory                                                  :: #type proc "c" (device: Device, pAllocateInfo: ^MemoryAllocateInfo, pAllocator: ^AllocationCallbacks, pMemory: ^DeviceMemory) -> Result
+	ProcFreeMemory                                                      :: #type proc "c" (device: Device, memory: DeviceMemory, pAllocator: ^AllocationCallbacks)
+	ProcMapMemory                                                       :: #type proc "c" (device: Device, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, flags: MemoryMapFlags, ppData: ^rawptr) -> Result
+	ProcUnmapMemory                                                     :: #type proc "c" (device: Device, memory: DeviceMemory)
+	ProcFlushMappedMemoryRanges                                         :: #type proc "c" (device: Device, memoryRangeCount: u32, pMemoryRanges: ^MappedMemoryRange) -> Result
+	ProcInvalidateMappedMemoryRanges                                    :: #type proc "c" (device: Device, memoryRangeCount: u32, pMemoryRanges: ^MappedMemoryRange) -> Result
+	ProcGetDeviceMemoryCommitment                                       :: #type proc "c" (device: Device, memory: DeviceMemory, pCommittedMemoryInBytes: ^DeviceSize)
+	ProcBindBufferMemory                                                :: #type proc "c" (device: Device, buffer: Buffer, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result
+	ProcBindImageMemory                                                 :: #type proc "c" (device: Device, image: Image, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result
+	ProcGetBufferMemoryRequirements                                     :: #type proc "c" (device: Device, buffer: Buffer, pMemoryRequirements: ^MemoryRequirements)
+	ProcGetImageMemoryRequirements                                      :: #type proc "c" (device: Device, image: Image, pMemoryRequirements: ^MemoryRequirements)
+	ProcGetImageSparseMemoryRequirements                                :: #type proc "c" (device: Device, image: Image, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements)
+	ProcGetPhysicalDeviceSparseImageFormatProperties                    :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, samples: SampleCountFlags, usage: ImageUsageFlags, tiling: ImageTiling, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties)
+	ProcQueueBindSparse                                                 :: #type proc "c" (queue: Queue, bindInfoCount: u32, pBindInfo: ^BindSparseInfo, fence: Fence) -> Result
+	ProcCreateFence                                                     :: #type proc "c" (device: Device, pCreateInfo: ^FenceCreateInfo, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result
+	ProcDestroyFence                                                    :: #type proc "c" (device: Device, fence: Fence, pAllocator: ^AllocationCallbacks)
+	ProcResetFences                                                     :: #type proc "c" (device: Device, fenceCount: u32, pFences: ^Fence) -> Result
+	ProcGetFenceStatus                                                  :: #type proc "c" (device: Device, fence: Fence) -> Result
+	ProcWaitForFences                                                   :: #type proc "c" (device: Device, fenceCount: u32, pFences: ^Fence, waitAll: b32, timeout: u64) -> Result
+	ProcCreateSemaphore                                                 :: #type proc "c" (device: Device, pCreateInfo: ^SemaphoreCreateInfo, pAllocator: ^AllocationCallbacks, pSemaphore: ^Semaphore) -> Result
+	ProcDestroySemaphore                                                :: #type proc "c" (device: Device, semaphore: Semaphore, pAllocator: ^AllocationCallbacks)
+	ProcCreateEvent                                                     :: #type proc "c" (device: Device, pCreateInfo: ^EventCreateInfo, pAllocator: ^AllocationCallbacks, pEvent: ^Event) -> Result
+	ProcDestroyEvent                                                    :: #type proc "c" (device: Device, event: Event, pAllocator: ^AllocationCallbacks)
+	ProcGetEventStatus                                                  :: #type proc "c" (device: Device, event: Event) -> Result
+	ProcSetEvent                                                        :: #type proc "c" (device: Device, event: Event) -> Result
+	ProcResetEvent                                                      :: #type proc "c" (device: Device, event: Event) -> Result
+	ProcCreateQueryPool                                                 :: #type proc "c" (device: Device, pCreateInfo: ^QueryPoolCreateInfo, pAllocator: ^AllocationCallbacks, pQueryPool: ^QueryPool) -> Result
+	ProcDestroyQueryPool                                                :: #type proc "c" (device: Device, queryPool: QueryPool, pAllocator: ^AllocationCallbacks)
+	ProcGetQueryPoolResults                                             :: #type proc "c" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dataSize: int, pData: rawptr, stride: DeviceSize, flags: QueryResultFlags) -> Result
+	ProcCreateBuffer                                                    :: #type proc "c" (device: Device, pCreateInfo: ^BufferCreateInfo, pAllocator: ^AllocationCallbacks, pBuffer: ^Buffer) -> Result
+	ProcDestroyBuffer                                                   :: #type proc "c" (device: Device, buffer: Buffer, pAllocator: ^AllocationCallbacks)
+	ProcCreateBufferView                                                :: #type proc "c" (device: Device, pCreateInfo: ^BufferViewCreateInfo, pAllocator: ^AllocationCallbacks, pView: ^BufferView) -> Result
+	ProcDestroyBufferView                                               :: #type proc "c" (device: Device, bufferView: BufferView, pAllocator: ^AllocationCallbacks)
+	ProcCreateImage                                                     :: #type proc "c" (device: Device, pCreateInfo: ^ImageCreateInfo, pAllocator: ^AllocationCallbacks, pImage: ^Image) -> Result
+	ProcDestroyImage                                                    :: #type proc "c" (device: Device, image: Image, pAllocator: ^AllocationCallbacks)
+	ProcGetImageSubresourceLayout                                       :: #type proc "c" (device: Device, image: Image, pSubresource: ^ImageSubresource, pLayout: ^SubresourceLayout)
+	ProcCreateImageView                                                 :: #type proc "c" (device: Device, pCreateInfo: ^ImageViewCreateInfo, pAllocator: ^AllocationCallbacks, pView: ^ImageView) -> Result
+	ProcDestroyImageView                                                :: #type proc "c" (device: Device, imageView: ImageView, pAllocator: ^AllocationCallbacks)
+	ProcCreateShaderModule                                              :: #type proc "c" (device: Device, pCreateInfo: ^ShaderModuleCreateInfo, pAllocator: ^AllocationCallbacks, pShaderModule: ^ShaderModule) -> Result
+	ProcDestroyShaderModule                                             :: #type proc "c" (device: Device, shaderModule: ShaderModule, pAllocator: ^AllocationCallbacks)
+	ProcCreatePipelineCache                                             :: #type proc "c" (device: Device, pCreateInfo: ^PipelineCacheCreateInfo, pAllocator: ^AllocationCallbacks, pPipelineCache: ^PipelineCache) -> Result
+	ProcDestroyPipelineCache                                            :: #type proc "c" (device: Device, pipelineCache: PipelineCache, pAllocator: ^AllocationCallbacks)
+	ProcGetPipelineCacheData                                            :: #type proc "c" (device: Device, pipelineCache: PipelineCache, pDataSize: ^int, pData: rawptr) -> Result
+	ProcMergePipelineCaches                                             :: #type proc "c" (device: Device, dstCache: PipelineCache, srcCacheCount: u32, pSrcCaches: ^PipelineCache) -> Result
+	ProcCreateGraphicsPipelines                                         :: #type proc "c" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^GraphicsPipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result
+	ProcCreateComputePipelines                                          :: #type proc "c" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^ComputePipelineCreateInfo, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result
+	ProcDestroyPipeline                                                 :: #type proc "c" (device: Device, pipeline: Pipeline, pAllocator: ^AllocationCallbacks)
+	ProcCreatePipelineLayout                                            :: #type proc "c" (device: Device, pCreateInfo: ^PipelineLayoutCreateInfo, pAllocator: ^AllocationCallbacks, pPipelineLayout: ^PipelineLayout) -> Result
+	ProcDestroyPipelineLayout                                           :: #type proc "c" (device: Device, pipelineLayout: PipelineLayout, pAllocator: ^AllocationCallbacks)
+	ProcCreateSampler                                                   :: #type proc "c" (device: Device, pCreateInfo: ^SamplerCreateInfo, pAllocator: ^AllocationCallbacks, pSampler: ^Sampler) -> Result
+	ProcDestroySampler                                                  :: #type proc "c" (device: Device, sampler: Sampler, pAllocator: ^AllocationCallbacks)
+	ProcCreateDescriptorSetLayout                                       :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pAllocator: ^AllocationCallbacks, pSetLayout: ^DescriptorSetLayout) -> Result
+	ProcDestroyDescriptorSetLayout                                      :: #type proc "c" (device: Device, descriptorSetLayout: DescriptorSetLayout, pAllocator: ^AllocationCallbacks)
+	ProcCreateDescriptorPool                                            :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorPoolCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorPool: ^DescriptorPool) -> Result
+	ProcDestroyDescriptorPool                                           :: #type proc "c" (device: Device, descriptorPool: DescriptorPool, pAllocator: ^AllocationCallbacks)
+	ProcResetDescriptorPool                                             :: #type proc "c" (device: Device, descriptorPool: DescriptorPool, flags: DescriptorPoolResetFlags) -> Result
+	ProcAllocateDescriptorSets                                          :: #type proc "c" (device: Device, pAllocateInfo: ^DescriptorSetAllocateInfo, pDescriptorSets: ^DescriptorSet) -> Result
+	ProcFreeDescriptorSets                                              :: #type proc "c" (device: Device, descriptorPool: DescriptorPool, descriptorSetCount: u32, pDescriptorSets: ^DescriptorSet) -> Result
+	ProcUpdateDescriptorSets                                            :: #type proc "c" (device: Device, descriptorWriteCount: u32, pDescriptorWrites: ^WriteDescriptorSet, descriptorCopyCount: u32, pDescriptorCopies: ^CopyDescriptorSet)
+	ProcCreateFramebuffer                                               :: #type proc "c" (device: Device, pCreateInfo: ^FramebufferCreateInfo, pAllocator: ^AllocationCallbacks, pFramebuffer: ^Framebuffer) -> Result
+	ProcDestroyFramebuffer                                              :: #type proc "c" (device: Device, framebuffer: Framebuffer, pAllocator: ^AllocationCallbacks)
+	ProcCreateRenderPass                                                :: #type proc "c" (device: Device, pCreateInfo: ^RenderPassCreateInfo, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result
+	ProcDestroyRenderPass                                               :: #type proc "c" (device: Device, renderPass: RenderPass, pAllocator: ^AllocationCallbacks)
+	ProcGetRenderAreaGranularity                                        :: #type proc "c" (device: Device, renderPass: RenderPass, pGranularity: ^Extent2D)
+	ProcCreateCommandPool                                               :: #type proc "c" (device: Device, pCreateInfo: ^CommandPoolCreateInfo, pAllocator: ^AllocationCallbacks, pCommandPool: ^CommandPool) -> Result
+	ProcDestroyCommandPool                                              :: #type proc "c" (device: Device, commandPool: CommandPool, pAllocator: ^AllocationCallbacks)
+	ProcResetCommandPool                                                :: #type proc "c" (device: Device, commandPool: CommandPool, flags: CommandPoolResetFlags) -> Result
+	ProcAllocateCommandBuffers                                          :: #type proc "c" (device: Device, pAllocateInfo: ^CommandBufferAllocateInfo, pCommandBuffers: ^CommandBuffer) -> Result
+	ProcFreeCommandBuffers                                              :: #type proc "c" (device: Device, commandPool: CommandPool, commandBufferCount: u32, pCommandBuffers: ^CommandBuffer)
+	ProcBeginCommandBuffer                                              :: #type proc "c" (commandBuffer: CommandBuffer, pBeginInfo: ^CommandBufferBeginInfo) -> Result
+	ProcEndCommandBuffer                                                :: #type proc "c" (commandBuffer: CommandBuffer) -> Result
+	ProcResetCommandBuffer                                              :: #type proc "c" (commandBuffer: CommandBuffer, flags: CommandBufferResetFlags) -> Result
+	ProcCmdBindPipeline                                                 :: #type proc "c" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline)
+	ProcCmdSetViewport                                                  :: #type proc "c" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewports: ^Viewport)
+	ProcCmdSetScissor                                                   :: #type proc "c" (commandBuffer: CommandBuffer, firstScissor: u32, scissorCount: u32, pScissors: ^Rect2D)
+	ProcCmdSetLineWidth                                                 :: #type proc "c" (commandBuffer: CommandBuffer, lineWidth: f32)
+	ProcCmdSetDepthBias                                                 :: #type proc "c" (commandBuffer: CommandBuffer, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32)
+	ProcCmdSetBlendConstants                                            :: #type proc "c" (commandBuffer: CommandBuffer)
+	ProcCmdSetDepthBounds                                               :: #type proc "c" (commandBuffer: CommandBuffer, minDepthBounds: f32, maxDepthBounds: f32)
+	ProcCmdSetStencilCompareMask                                        :: #type proc "c" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, compareMask: u32)
+	ProcCmdSetStencilWriteMask                                          :: #type proc "c" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, writeMask: u32)
+	ProcCmdSetStencilReference                                          :: #type proc "c" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, reference: u32)
+	ProcCmdBindDescriptorSets                                           :: #type proc "c" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, firstSet: u32, descriptorSetCount: u32, pDescriptorSets: ^DescriptorSet, dynamicOffsetCount: u32, pDynamicOffsets: ^u32)
+	ProcCmdBindIndexBuffer                                              :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, indexType: IndexType)
+	ProcCmdBindVertexBuffers                                            :: #type proc "c" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize)
+	ProcCmdDraw                                                         :: #type proc "c" (commandBuffer: CommandBuffer, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32)
+	ProcCmdDrawIndexed                                                  :: #type proc "c" (commandBuffer: CommandBuffer, indexCount: u32, instanceCount: u32, firstIndex: u32, vertexOffset: i32, firstInstance: u32)
+	ProcCmdDrawIndirect                                                 :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32)
+	ProcCmdDrawIndexedIndirect                                          :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32)
+	ProcCmdDispatch                                                     :: #type proc "c" (commandBuffer: CommandBuffer, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
+	ProcCmdDispatchIndirect                                             :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize)
+	ProcCmdCopyBuffer                                                   :: #type proc "c" (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstBuffer: Buffer, regionCount: u32, pRegions: ^BufferCopy)
+	ProcCmdCopyImage                                                    :: #type proc "c" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageCopy)
+	ProcCmdBlitImage                                                    :: #type proc "c" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageBlit, filter: Filter)
+	ProcCmdCopyBufferToImage                                            :: #type proc "c" (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^BufferImageCopy)
+	ProcCmdCopyImageToBuffer                                            :: #type proc "c" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstBuffer: Buffer, regionCount: u32, pRegions: ^BufferImageCopy)
+	ProcCmdUpdateBuffer                                                 :: #type proc "c" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, dataSize: DeviceSize, pData: rawptr)
+	ProcCmdFillBuffer                                                   :: #type proc "c" (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, size: DeviceSize, data: u32)
+	ProcCmdClearColorImage                                              :: #type proc "c" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pColor: ^ClearColorValue, rangeCount: u32, pRanges: ^ImageSubresourceRange)
+	ProcCmdClearDepthStencilImage                                       :: #type proc "c" (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pDepthStencil: ^ClearDepthStencilValue, rangeCount: u32, pRanges: ^ImageSubresourceRange)
+	ProcCmdClearAttachments                                             :: #type proc "c" (commandBuffer: CommandBuffer, attachmentCount: u32, pAttachments: ^ClearAttachment, rectCount: u32, pRects: ^ClearRect)
+	ProcCmdResolveImage                                                 :: #type proc "c" (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: ^ImageResolve)
+	ProcCmdSetEvent                                                     :: #type proc "c" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags)
+	ProcCmdResetEvent                                                   :: #type proc "c" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags)
+	ProcCmdWaitEvents                                                   :: #type proc "c" (commandBuffer: CommandBuffer, eventCount: u32, pEvents: ^Event, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, memoryBarrierCount: u32, pMemoryBarriers: ^MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: ^BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: ^ImageMemoryBarrier)
+	ProcCmdPipelineBarrier                                              :: #type proc "c" (commandBuffer: CommandBuffer, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, dependencyFlags: DependencyFlags, memoryBarrierCount: u32, pMemoryBarriers: ^MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: ^BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: ^ImageMemoryBarrier)
+	ProcCmdBeginQuery                                                   :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags)
+	ProcCmdEndQuery                                                     :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32)
+	ProcCmdResetQueryPool                                               :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32)
+	ProcCmdWriteTimestamp                                               :: #type proc "c" (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, queryPool: QueryPool, query: u32)
+	ProcCmdCopyQueryPoolResults                                         :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dstBuffer: Buffer, dstOffset: DeviceSize, stride: DeviceSize, flags: QueryResultFlags)
+	ProcCmdPushConstants                                                :: #type proc "c" (commandBuffer: CommandBuffer, layout: PipelineLayout, stageFlags: ShaderStageFlags, offset: u32, size: u32, pValues: rawptr)
+	ProcCmdBeginRenderPass                                              :: #type proc "c" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, contents: SubpassContents)
+	ProcCmdNextSubpass                                                  :: #type proc "c" (commandBuffer: CommandBuffer, contents: SubpassContents)
+	ProcCmdEndRenderPass                                                :: #type proc "c" (commandBuffer: CommandBuffer)
+	ProcCmdExecuteCommands                                              :: #type proc "c" (commandBuffer: CommandBuffer, commandBufferCount: u32, pCommandBuffers: ^CommandBuffer)
+	ProcEnumerateInstanceVersion                                        :: #type proc "c" (pApiVersion: ^u32) -> Result
+	ProcBindBufferMemory2                                               :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindBufferMemoryInfo) -> Result
+	ProcBindImageMemory2                                                :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindImageMemoryInfo) -> Result
+	ProcGetDeviceGroupPeerMemoryFeatures                                :: #type proc "c" (device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: ^PeerMemoryFeatureFlags)
+	ProcCmdSetDeviceMask                                                :: #type proc "c" (commandBuffer: CommandBuffer, deviceMask: u32)
+	ProcCmdDispatchBase                                                 :: #type proc "c" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
+	ProcEnumeratePhysicalDeviceGroups                                   :: #type proc "c" (instance: Instance, pPhysicalDeviceGroupCount: ^u32, pPhysicalDeviceGroupProperties: ^PhysicalDeviceGroupProperties) -> Result
+	ProcGetImageMemoryRequirements2                                     :: #type proc "c" (device: Device, pInfo: ^ImageMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2)
+	ProcGetBufferMemoryRequirements2                                    :: #type proc "c" (device: Device, pInfo: ^BufferMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2)
+	ProcGetImageSparseMemoryRequirements2                               :: #type proc "c" (device: Device, pInfo: ^ImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements2)
+	ProcGetPhysicalDeviceFeatures2                                      :: #type proc "c" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures2)
+	ProcGetPhysicalDeviceProperties2                                    :: #type proc "c" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties2)
+	ProcGetPhysicalDeviceFormatProperties2                              :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties2)
+	ProcGetPhysicalDeviceImageFormatProperties2                         :: #type proc "c" (physicalDevice: PhysicalDevice, pImageFormatInfo: ^PhysicalDeviceImageFormatInfo2, pImageFormatProperties: ^ImageFormatProperties2) -> Result
+	ProcGetPhysicalDeviceQueueFamilyProperties2                         :: #type proc "c" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties2)
+	ProcGetPhysicalDeviceMemoryProperties2                              :: #type proc "c" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties2)
+	ProcGetPhysicalDeviceSparseImageFormatProperties2                   :: #type proc "c" (physicalDevice: PhysicalDevice, pFormatInfo: ^PhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties2)
+	ProcTrimCommandPool                                                 :: #type proc "c" (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags)
+	ProcGetDeviceQueue2                                                 :: #type proc "c" (device: Device, pQueueInfo: ^DeviceQueueInfo2, pQueue: ^Queue)
+	ProcCreateSamplerYcbcrConversion                                    :: #type proc "c" (device: Device, pCreateInfo: ^SamplerYcbcrConversionCreateInfo, pAllocator: ^AllocationCallbacks, pYcbcrConversion: ^SamplerYcbcrConversion) -> Result
+	ProcDestroySamplerYcbcrConversion                                   :: #type proc "c" (device: Device, ycbcrConversion: SamplerYcbcrConversion, pAllocator: ^AllocationCallbacks)
+	ProcCreateDescriptorUpdateTemplate                                  :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result
+	ProcDestroyDescriptorUpdateTemplate                                 :: #type proc "c" (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplate, pAllocator: ^AllocationCallbacks)
+	ProcUpdateDescriptorSetWithTemplate                                 :: #type proc "c" (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplate, pData: rawptr)
+	ProcGetPhysicalDeviceExternalBufferProperties                       :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalBufferInfo: ^PhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ^ExternalBufferProperties)
+	ProcGetPhysicalDeviceExternalFenceProperties                        :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalFenceInfo: ^PhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ^ExternalFenceProperties)
+	ProcGetPhysicalDeviceExternalSemaphoreProperties                    :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalSemaphoreInfo: ^PhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ^ExternalSemaphoreProperties)
+	ProcGetDescriptorSetLayoutSupport                                   :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pSupport: ^DescriptorSetLayoutSupport)
+	ProcCmdDrawIndirectCount                                            :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCmdDrawIndexedIndirectCount                                     :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCreateRenderPass2                                               :: #type proc "c" (device: Device, pCreateInfo: ^RenderPassCreateInfo2, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result
+	ProcCmdBeginRenderPass2                                             :: #type proc "c" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, pSubpassBeginInfo: ^SubpassBeginInfo)
+	ProcCmdNextSubpass2                                                 :: #type proc "c" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo)
+	ProcCmdEndRenderPass2                                               :: #type proc "c" (commandBuffer: CommandBuffer, pSubpassEndInfo: ^SubpassEndInfo)
+	ProcResetQueryPool                                                  :: #type proc "c" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32)
+	ProcGetSemaphoreCounterValue                                        :: #type proc "c" (device: Device, semaphore: Semaphore, pValue: ^u64) -> Result
+	ProcWaitSemaphores                                                  :: #type proc "c" (device: Device, pWaitInfo: ^SemaphoreWaitInfo, timeout: u64) -> Result
+	ProcSignalSemaphore                                                 :: #type proc "c" (device: Device, pSignalInfo: ^SemaphoreSignalInfo) -> Result
+	ProcGetBufferDeviceAddress                                          :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress
+	ProcGetBufferOpaqueCaptureAddress                                   :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> u64
+	ProcGetDeviceMemoryOpaqueCaptureAddress                             :: #type proc "c" (device: Device, pInfo: ^DeviceMemoryOpaqueCaptureAddressInfo) -> u64
+	ProcDestroySurfaceKHR                                               :: #type proc "c" (instance: Instance, surface: SurfaceKHR, pAllocator: ^AllocationCallbacks)
+	ProcGetPhysicalDeviceSurfaceSupportKHR                              :: #type proc "c" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, surface: SurfaceKHR, pSupported: ^b32) -> Result
+	ProcGetPhysicalDeviceSurfaceCapabilitiesKHR                         :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: ^SurfaceCapabilitiesKHR) -> Result
+	ProcGetPhysicalDeviceSurfaceFormatsKHR                              :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceFormatCount: ^u32, pSurfaceFormats: ^SurfaceFormatKHR) -> Result
+	ProcGetPhysicalDeviceSurfacePresentModesKHR                         :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pPresentModeCount: ^u32, pPresentModes: ^PresentModeKHR) -> Result
+	ProcCreateSwapchainKHR                                              :: #type proc "c" (device: Device, pCreateInfo: ^SwapchainCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSwapchain: ^SwapchainKHR) -> Result
+	ProcDestroySwapchainKHR                                             :: #type proc "c" (device: Device, swapchain: SwapchainKHR, pAllocator: ^AllocationCallbacks)
+	ProcGetSwapchainImagesKHR                                           :: #type proc "c" (device: Device, swapchain: SwapchainKHR, pSwapchainImageCount: ^u32, pSwapchainImages: ^Image) -> Result
+	ProcAcquireNextImageKHR                                             :: #type proc "c" (device: Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence, pImageIndex: ^u32) -> Result
+	ProcQueuePresentKHR                                                 :: #type proc "c" (queue: Queue, pPresentInfo: ^PresentInfoKHR) -> Result
+	ProcGetDeviceGroupPresentCapabilitiesKHR                            :: #type proc "c" (device: Device, pDeviceGroupPresentCapabilities: ^DeviceGroupPresentCapabilitiesKHR) -> Result
+	ProcGetDeviceGroupSurfacePresentModesKHR                            :: #type proc "c" (device: Device, surface: SurfaceKHR, pModes: ^DeviceGroupPresentModeFlagsKHR) -> Result
+	ProcGetPhysicalDevicePresentRectanglesKHR                           :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pRectCount: ^u32, pRects: ^Rect2D) -> Result
+	ProcAcquireNextImage2KHR                                            :: #type proc "c" (device: Device, pAcquireInfo: ^AcquireNextImageInfoKHR, pImageIndex: ^u32) -> Result
+	ProcGetPhysicalDeviceDisplayPropertiesKHR                           :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPropertiesKHR) -> Result
+	ProcGetPhysicalDeviceDisplayPlanePropertiesKHR                      :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPlanePropertiesKHR) -> Result
+	ProcGetDisplayPlaneSupportedDisplaysKHR                             :: #type proc "c" (physicalDevice: PhysicalDevice, planeIndex: u32, pDisplayCount: ^u32, pDisplays: ^DisplayKHR) -> Result
+	ProcGetDisplayModePropertiesKHR                                     :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: ^u32, pProperties: ^DisplayModePropertiesKHR) -> Result
+	ProcCreateDisplayModeKHR                                            :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR, pCreateInfo: ^DisplayModeCreateInfoKHR, pAllocator: ^AllocationCallbacks, pMode: ^DisplayModeKHR) -> Result
+	ProcGetDisplayPlaneCapabilitiesKHR                                  :: #type proc "c" (physicalDevice: PhysicalDevice, mode: DisplayModeKHR, planeIndex: u32, pCapabilities: ^DisplayPlaneCapabilitiesKHR) -> Result
+	ProcCreateDisplayPlaneSurfaceKHR                                    :: #type proc "c" (instance: Instance, pCreateInfo: ^DisplaySurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcCreateSharedSwapchainsKHR                                       :: #type proc "c" (device: Device, swapchainCount: u32, pCreateInfos: ^SwapchainCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSwapchains: ^SwapchainKHR) -> Result
+	ProcGetPhysicalDeviceFeatures2KHR                                   :: #type proc "c" (physicalDevice: PhysicalDevice, pFeatures: ^PhysicalDeviceFeatures2)
+	ProcGetPhysicalDeviceProperties2KHR                                 :: #type proc "c" (physicalDevice: PhysicalDevice, pProperties: ^PhysicalDeviceProperties2)
+	ProcGetPhysicalDeviceFormatProperties2KHR                           :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: ^FormatProperties2)
+	ProcGetPhysicalDeviceImageFormatProperties2KHR                      :: #type proc "c" (physicalDevice: PhysicalDevice, pImageFormatInfo: ^PhysicalDeviceImageFormatInfo2, pImageFormatProperties: ^ImageFormatProperties2) -> Result
+	ProcGetPhysicalDeviceQueueFamilyProperties2KHR                      :: #type proc "c" (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: ^u32, pQueueFamilyProperties: ^QueueFamilyProperties2)
+	ProcGetPhysicalDeviceMemoryProperties2KHR                           :: #type proc "c" (physicalDevice: PhysicalDevice, pMemoryProperties: ^PhysicalDeviceMemoryProperties2)
+	ProcGetPhysicalDeviceSparseImageFormatProperties2KHR                :: #type proc "c" (physicalDevice: PhysicalDevice, pFormatInfo: ^PhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ^u32, pProperties: ^SparseImageFormatProperties2)
+	ProcGetDeviceGroupPeerMemoryFeaturesKHR                             :: #type proc "c" (device: Device, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: ^PeerMemoryFeatureFlags)
+	ProcCmdSetDeviceMaskKHR                                             :: #type proc "c" (commandBuffer: CommandBuffer, deviceMask: u32)
+	ProcCmdDispatchBaseKHR                                              :: #type proc "c" (commandBuffer: CommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32)
+	ProcTrimCommandPoolKHR                                              :: #type proc "c" (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags)
+	ProcEnumeratePhysicalDeviceGroupsKHR                                :: #type proc "c" (instance: Instance, pPhysicalDeviceGroupCount: ^u32, pPhysicalDeviceGroupProperties: ^PhysicalDeviceGroupProperties) -> Result
+	ProcGetPhysicalDeviceExternalBufferPropertiesKHR                    :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalBufferInfo: ^PhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ^ExternalBufferProperties)
+	ProcGetMemoryFdKHR                                                  :: #type proc "c" (device: Device, pGetFdInfo: ^MemoryGetFdInfoKHR, pFd: ^c.int) -> Result
+	ProcGetMemoryFdPropertiesKHR                                        :: #type proc "c" (device: Device, handleType: ExternalMemoryHandleTypeFlags, fd: c.int, pMemoryFdProperties: ^MemoryFdPropertiesKHR) -> Result
+	ProcGetPhysicalDeviceExternalSemaphorePropertiesKHR                 :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalSemaphoreInfo: ^PhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ^ExternalSemaphoreProperties)
+	ProcImportSemaphoreFdKHR                                            :: #type proc "c" (device: Device, pImportSemaphoreFdInfo: ^ImportSemaphoreFdInfoKHR) -> Result
+	ProcGetSemaphoreFdKHR                                               :: #type proc "c" (device: Device, pGetFdInfo: ^SemaphoreGetFdInfoKHR, pFd: ^c.int) -> Result
+	ProcCmdPushDescriptorSetKHR                                         :: #type proc "c" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, set: u32, descriptorWriteCount: u32, pDescriptorWrites: ^WriteDescriptorSet)
+	ProcCmdPushDescriptorSetWithTemplateKHR                             :: #type proc "c" (commandBuffer: CommandBuffer, descriptorUpdateTemplate: DescriptorUpdateTemplate, layout: PipelineLayout, set: u32, pData: rawptr)
+	ProcCreateDescriptorUpdateTemplateKHR                               :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorUpdateTemplateCreateInfo, pAllocator: ^AllocationCallbacks, pDescriptorUpdateTemplate: ^DescriptorUpdateTemplate) -> Result
+	ProcDestroyDescriptorUpdateTemplateKHR                              :: #type proc "c" (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplate, pAllocator: ^AllocationCallbacks)
+	ProcUpdateDescriptorSetWithTemplateKHR                              :: #type proc "c" (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplate, pData: rawptr)
+	ProcCreateRenderPass2KHR                                            :: #type proc "c" (device: Device, pCreateInfo: ^RenderPassCreateInfo2, pAllocator: ^AllocationCallbacks, pRenderPass: ^RenderPass) -> Result
+	ProcCmdBeginRenderPass2KHR                                          :: #type proc "c" (commandBuffer: CommandBuffer, pRenderPassBegin: ^RenderPassBeginInfo, pSubpassBeginInfo: ^SubpassBeginInfo)
+	ProcCmdNextSubpass2KHR                                              :: #type proc "c" (commandBuffer: CommandBuffer, pSubpassBeginInfo: ^SubpassBeginInfo, pSubpassEndInfo: ^SubpassEndInfo)
+	ProcCmdEndRenderPass2KHR                                            :: #type proc "c" (commandBuffer: CommandBuffer, pSubpassEndInfo: ^SubpassEndInfo)
+	ProcGetSwapchainStatusKHR                                           :: #type proc "c" (device: Device, swapchain: SwapchainKHR) -> Result
+	ProcGetPhysicalDeviceExternalFencePropertiesKHR                     :: #type proc "c" (physicalDevice: PhysicalDevice, pExternalFenceInfo: ^PhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ^ExternalFenceProperties)
+	ProcImportFenceFdKHR                                                :: #type proc "c" (device: Device, pImportFenceFdInfo: ^ImportFenceFdInfoKHR) -> Result
+	ProcGetFenceFdKHR                                                   :: #type proc "c" (device: Device, pGetFdInfo: ^FenceGetFdInfoKHR, pFd: ^c.int) -> Result
+	ProcEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   :: #type proc "c" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, pCounterCount: ^u32, pCounters: ^PerformanceCounterKHR, pCounterDescriptions: ^PerformanceCounterDescriptionKHR) -> Result
+	ProcGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR           :: #type proc "c" (physicalDevice: PhysicalDevice, pPerformanceQueryCreateInfo: ^QueryPoolPerformanceCreateInfoKHR, pNumPasses: ^u32)
+	ProcAcquireProfilingLockKHR                                         :: #type proc "c" (device: Device, pInfo: ^AcquireProfilingLockInfoKHR) -> Result
+	ProcReleaseProfilingLockKHR                                         :: #type proc "c" (device: Device)
+	ProcGetPhysicalDeviceSurfaceCapabilities2KHR                        :: #type proc "c" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ^SurfaceCapabilities2KHR) -> Result
+	ProcGetPhysicalDeviceSurfaceFormats2KHR                             :: #type proc "c" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ^u32, pSurfaceFormats: ^SurfaceFormat2KHR) -> Result
+	ProcGetPhysicalDeviceDisplayProperties2KHR                          :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayProperties2KHR) -> Result
+	ProcGetPhysicalDeviceDisplayPlaneProperties2KHR                     :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^DisplayPlaneProperties2KHR) -> Result
+	ProcGetDisplayModeProperties2KHR                                    :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: ^u32, pProperties: ^DisplayModeProperties2KHR) -> Result
+	ProcGetDisplayPlaneCapabilities2KHR                                 :: #type proc "c" (physicalDevice: PhysicalDevice, pDisplayPlaneInfo: ^DisplayPlaneInfo2KHR, pCapabilities: ^DisplayPlaneCapabilities2KHR) -> Result
+	ProcGetImageMemoryRequirements2KHR                                  :: #type proc "c" (device: Device, pInfo: ^ImageMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2)
+	ProcGetBufferMemoryRequirements2KHR                                 :: #type proc "c" (device: Device, pInfo: ^BufferMemoryRequirementsInfo2, pMemoryRequirements: ^MemoryRequirements2)
+	ProcGetImageSparseMemoryRequirements2KHR                            :: #type proc "c" (device: Device, pInfo: ^ImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ^u32, pSparseMemoryRequirements: ^SparseImageMemoryRequirements2)
+	ProcCreateSamplerYcbcrConversionKHR                                 :: #type proc "c" (device: Device, pCreateInfo: ^SamplerYcbcrConversionCreateInfo, pAllocator: ^AllocationCallbacks, pYcbcrConversion: ^SamplerYcbcrConversion) -> Result
+	ProcDestroySamplerYcbcrConversionKHR                                :: #type proc "c" (device: Device, ycbcrConversion: SamplerYcbcrConversion, pAllocator: ^AllocationCallbacks)
+	ProcBindBufferMemory2KHR                                            :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindBufferMemoryInfo) -> Result
+	ProcBindImageMemory2KHR                                             :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindImageMemoryInfo) -> Result
+	ProcGetDescriptorSetLayoutSupportKHR                                :: #type proc "c" (device: Device, pCreateInfo: ^DescriptorSetLayoutCreateInfo, pSupport: ^DescriptorSetLayoutSupport)
+	ProcCmdDrawIndirectCountKHR                                         :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCmdDrawIndexedIndirectCountKHR                                  :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcGetSemaphoreCounterValueKHR                                     :: #type proc "c" (device: Device, semaphore: Semaphore, pValue: ^u64) -> Result
+	ProcWaitSemaphoresKHR                                               :: #type proc "c" (device: Device, pWaitInfo: ^SemaphoreWaitInfo, timeout: u64) -> Result
+	ProcSignalSemaphoreKHR                                              :: #type proc "c" (device: Device, pSignalInfo: ^SemaphoreSignalInfo) -> Result
+	ProcGetPhysicalDeviceFragmentShadingRatesKHR                        :: #type proc "c" (physicalDevice: PhysicalDevice, pFragmentShadingRateCount: ^u32, pFragmentShadingRates: ^PhysicalDeviceFragmentShadingRateKHR) -> Result
+	ProcCmdSetFragmentShadingRateKHR                                    :: #type proc "c" (commandBuffer: CommandBuffer, pFragmentSize: ^Extent2D)
+	ProcWaitForPresentKHR                                               :: #type proc "c" (device: Device, swapchain: SwapchainKHR, presentId: u64, timeout: u64) -> Result
+	ProcGetBufferDeviceAddressKHR                                       :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress
+	ProcGetBufferOpaqueCaptureAddressKHR                                :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> u64
+	ProcGetDeviceMemoryOpaqueCaptureAddressKHR                          :: #type proc "c" (device: Device, pInfo: ^DeviceMemoryOpaqueCaptureAddressInfo) -> u64
+	ProcCreateDeferredOperationKHR                                      :: #type proc "c" (device: Device, pAllocator: ^AllocationCallbacks, pDeferredOperation: ^DeferredOperationKHR) -> Result
+	ProcDestroyDeferredOperationKHR                                     :: #type proc "c" (device: Device, operation: DeferredOperationKHR, pAllocator: ^AllocationCallbacks)
+	ProcGetDeferredOperationMaxConcurrencyKHR                           :: #type proc "c" (device: Device, operation: DeferredOperationKHR) -> u32
+	ProcGetDeferredOperationResultKHR                                   :: #type proc "c" (device: Device, operation: DeferredOperationKHR) -> Result
+	ProcDeferredOperationJoinKHR                                        :: #type proc "c" (device: Device, operation: DeferredOperationKHR) -> Result
+	ProcGetPipelineExecutablePropertiesKHR                              :: #type proc "c" (device: Device, pPipelineInfo: ^PipelineInfoKHR, pExecutableCount: ^u32, pProperties: ^PipelineExecutablePropertiesKHR) -> Result
+	ProcGetPipelineExecutableStatisticsKHR                              :: #type proc "c" (device: Device, pExecutableInfo: ^PipelineExecutableInfoKHR, pStatisticCount: ^u32, pStatistics: ^PipelineExecutableStatisticKHR) -> Result
+	ProcGetPipelineExecutableInternalRepresentationsKHR                 :: #type proc "c" (device: Device, pExecutableInfo: ^PipelineExecutableInfoKHR, pInternalRepresentationCount: ^u32, pInternalRepresentations: ^PipelineExecutableInternalRepresentationKHR) -> Result
+	ProcCmdSetEvent2KHR                                                 :: #type proc "c" (commandBuffer: CommandBuffer, event: Event, pDependencyInfo: ^DependencyInfoKHR)
+	ProcCmdResetEvent2KHR                                               :: #type proc "c" (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags2KHR)
+	ProcCmdWaitEvents2KHR                                               :: #type proc "c" (commandBuffer: CommandBuffer, eventCount: u32, pEvents: ^Event, pDependencyInfos: ^DependencyInfoKHR)
+	ProcCmdPipelineBarrier2KHR                                          :: #type proc "c" (commandBuffer: CommandBuffer, pDependencyInfo: ^DependencyInfoKHR)
+	ProcCmdWriteTimestamp2KHR                                           :: #type proc "c" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2KHR, queryPool: QueryPool, query: u32)
+	ProcQueueSubmit2KHR                                                 :: #type proc "c" (queue: Queue, submitCount: u32, pSubmits: ^SubmitInfo2KHR, fence: Fence) -> Result
+	ProcCmdWriteBufferMarker2AMD                                        :: #type proc "c" (commandBuffer: CommandBuffer, stage: PipelineStageFlags2KHR, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32)
+	ProcGetQueueCheckpointData2NV                                       :: #type proc "c" (queue: Queue, pCheckpointDataCount: ^u32, pCheckpointData: ^CheckpointData2NV)
+	ProcCmdCopyBuffer2KHR                                               :: #type proc "c" (commandBuffer: CommandBuffer, pCopyBufferInfo: ^CopyBufferInfo2KHR)
+	ProcCmdCopyImage2KHR                                                :: #type proc "c" (commandBuffer: CommandBuffer, pCopyImageInfo: ^CopyImageInfo2KHR)
+	ProcCmdCopyBufferToImage2KHR                                        :: #type proc "c" (commandBuffer: CommandBuffer, pCopyBufferToImageInfo: ^CopyBufferToImageInfo2KHR)
+	ProcCmdCopyImageToBuffer2KHR                                        :: #type proc "c" (commandBuffer: CommandBuffer, pCopyImageToBufferInfo: ^CopyImageToBufferInfo2KHR)
+	ProcCmdBlitImage2KHR                                                :: #type proc "c" (commandBuffer: CommandBuffer, pBlitImageInfo: ^BlitImageInfo2KHR)
+	ProcCmdResolveImage2KHR                                             :: #type proc "c" (commandBuffer: CommandBuffer, pResolveImageInfo: ^ResolveImageInfo2KHR)
+	ProcDebugReportCallbackEXT                                          :: #type proc "c" (flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring, pUserData: rawptr) -> b32
+	ProcCreateDebugReportCallbackEXT                                    :: #type proc "c" (instance: Instance, pCreateInfo: ^DebugReportCallbackCreateInfoEXT, pAllocator: ^AllocationCallbacks, pCallback: ^DebugReportCallbackEXT) -> Result
+	ProcDestroyDebugReportCallbackEXT                                   :: #type proc "c" (instance: Instance, callback: DebugReportCallbackEXT, pAllocator: ^AllocationCallbacks)
+	ProcDebugReportMessageEXT                                           :: #type proc "c" (instance: Instance, flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring)
+	ProcDebugMarkerSetObjectTagEXT                                      :: #type proc "c" (device: Device, pTagInfo: ^DebugMarkerObjectTagInfoEXT) -> Result
+	ProcDebugMarkerSetObjectNameEXT                                     :: #type proc "c" (device: Device, pNameInfo: ^DebugMarkerObjectNameInfoEXT) -> Result
+	ProcCmdDebugMarkerBeginEXT                                          :: #type proc "c" (commandBuffer: CommandBuffer, pMarkerInfo: ^DebugMarkerMarkerInfoEXT)
+	ProcCmdDebugMarkerEndEXT                                            :: #type proc "c" (commandBuffer: CommandBuffer)
+	ProcCmdDebugMarkerInsertEXT                                         :: #type proc "c" (commandBuffer: CommandBuffer, pMarkerInfo: ^DebugMarkerMarkerInfoEXT)
+	ProcCmdBindTransformFeedbackBuffersEXT                              :: #type proc "c" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize, pSizes: ^DeviceSize)
+	ProcCmdBeginTransformFeedbackEXT                                    :: #type proc "c" (commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: ^Buffer, pCounterBufferOffsets: ^DeviceSize)
+	ProcCmdEndTransformFeedbackEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: ^Buffer, pCounterBufferOffsets: ^DeviceSize)
+	ProcCmdBeginQueryIndexedEXT                                         :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags, index: u32)
+	ProcCmdEndQueryIndexedEXT                                           :: #type proc "c" (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, index: u32)
+	ProcCmdDrawIndirectByteCountEXT                                     :: #type proc "c" (commandBuffer: CommandBuffer, instanceCount: u32, firstInstance: u32, counterBuffer: Buffer, counterBufferOffset: DeviceSize, counterOffset: u32, vertexStride: u32)
+	ProcCreateCuModuleNVX                                               :: #type proc "c" (device: Device, pCreateInfo: ^CuModuleCreateInfoNVX, pAllocator: ^AllocationCallbacks, pModule: ^CuModuleNVX) -> Result
+	ProcCreateCuFunctionNVX                                             :: #type proc "c" (device: Device, pCreateInfo: ^CuFunctionCreateInfoNVX, pAllocator: ^AllocationCallbacks, pFunction: ^CuFunctionNVX) -> Result
+	ProcDestroyCuModuleNVX                                              :: #type proc "c" (device: Device, module: CuModuleNVX, pAllocator: ^AllocationCallbacks)
+	ProcDestroyCuFunctionNVX                                            :: #type proc "c" (device: Device, function: CuFunctionNVX, pAllocator: ^AllocationCallbacks)
+	ProcCmdCuLaunchKernelNVX                                            :: #type proc "c" (commandBuffer: CommandBuffer, pLaunchInfo: ^CuLaunchInfoNVX)
+	ProcGetImageViewHandleNVX                                           :: #type proc "c" (device: Device, pInfo: ^ImageViewHandleInfoNVX) -> u32
+	ProcGetImageViewAddressNVX                                          :: #type proc "c" (device: Device, imageView: ImageView, pProperties: ^ImageViewAddressPropertiesNVX) -> Result
+	ProcCmdDrawIndirectCountAMD                                         :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCmdDrawIndexedIndirectCountAMD                                  :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcGetShaderInfoAMD                                                :: #type proc "c" (device: Device, pipeline: Pipeline, shaderStage: ShaderStageFlags, infoType: ShaderInfoTypeAMD, pInfoSize: ^int, pInfo: rawptr) -> Result
+	ProcGetPhysicalDeviceExternalImageFormatPropertiesNV                :: #type proc "c" (physicalDevice: PhysicalDevice, format: Format, type: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, externalHandleType: ExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ^ExternalImageFormatPropertiesNV) -> Result
+	ProcCmdBeginConditionalRenderingEXT                                 :: #type proc "c" (commandBuffer: CommandBuffer, pConditionalRenderingBegin: ^ConditionalRenderingBeginInfoEXT)
+	ProcCmdEndConditionalRenderingEXT                                   :: #type proc "c" (commandBuffer: CommandBuffer)
+	ProcCmdSetViewportWScalingNV                                        :: #type proc "c" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewportWScalings: ^ViewportWScalingNV)
+	ProcReleaseDisplayEXT                                               :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result
+	ProcGetPhysicalDeviceSurfaceCapabilities2EXT                        :: #type proc "c" (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: ^SurfaceCapabilities2EXT) -> Result
+	ProcDisplayPowerControlEXT                                          :: #type proc "c" (device: Device, display: DisplayKHR, pDisplayPowerInfo: ^DisplayPowerInfoEXT) -> Result
+	ProcRegisterDeviceEventEXT                                          :: #type proc "c" (device: Device, pDeviceEventInfo: ^DeviceEventInfoEXT, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result
+	ProcRegisterDisplayEventEXT                                         :: #type proc "c" (device: Device, display: DisplayKHR, pDisplayEventInfo: ^DisplayEventInfoEXT, pAllocator: ^AllocationCallbacks, pFence: ^Fence) -> Result
+	ProcGetSwapchainCounterEXT                                          :: #type proc "c" (device: Device, swapchain: SwapchainKHR, counter: SurfaceCounterFlagsEXT, pCounterValue: ^u64) -> Result
+	ProcGetRefreshCycleDurationGOOGLE                                   :: #type proc "c" (device: Device, swapchain: SwapchainKHR, pDisplayTimingProperties: ^RefreshCycleDurationGOOGLE) -> Result
+	ProcGetPastPresentationTimingGOOGLE                                 :: #type proc "c" (device: Device, swapchain: SwapchainKHR, pPresentationTimingCount: ^u32, pPresentationTimings: ^PastPresentationTimingGOOGLE) -> Result
+	ProcCmdSetDiscardRectangleEXT                                       :: #type proc "c" (commandBuffer: CommandBuffer, firstDiscardRectangle: u32, discardRectangleCount: u32, pDiscardRectangles: ^Rect2D)
+	ProcSetHdrMetadataEXT                                               :: #type proc "c" (device: Device, swapchainCount: u32, pSwapchains: ^SwapchainKHR, pMetadata: ^HdrMetadataEXT)
+	ProcDebugUtilsMessengerCallbackEXT                                  :: #type proc "c" (messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT, pUserData: rawptr) -> b32
+	ProcSetDebugUtilsObjectNameEXT                                      :: #type proc "c" (device: Device, pNameInfo: ^DebugUtilsObjectNameInfoEXT) -> Result
+	ProcSetDebugUtilsObjectTagEXT                                       :: #type proc "c" (device: Device, pTagInfo: ^DebugUtilsObjectTagInfoEXT) -> Result
+	ProcQueueBeginDebugUtilsLabelEXT                                    :: #type proc "c" (queue: Queue, pLabelInfo: ^DebugUtilsLabelEXT)
+	ProcQueueEndDebugUtilsLabelEXT                                      :: #type proc "c" (queue: Queue)
+	ProcQueueInsertDebugUtilsLabelEXT                                   :: #type proc "c" (queue: Queue, pLabelInfo: ^DebugUtilsLabelEXT)
+	ProcCmdBeginDebugUtilsLabelEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT)
+	ProcCmdEndDebugUtilsLabelEXT                                        :: #type proc "c" (commandBuffer: CommandBuffer)
+	ProcCmdInsertDebugUtilsLabelEXT                                     :: #type proc "c" (commandBuffer: CommandBuffer, pLabelInfo: ^DebugUtilsLabelEXT)
+	ProcCreateDebugUtilsMessengerEXT                                    :: #type proc "c" (instance: Instance, pCreateInfo: ^DebugUtilsMessengerCreateInfoEXT, pAllocator: ^AllocationCallbacks, pMessenger: ^DebugUtilsMessengerEXT) -> Result
+	ProcDestroyDebugUtilsMessengerEXT                                   :: #type proc "c" (instance: Instance, messenger: DebugUtilsMessengerEXT, pAllocator: ^AllocationCallbacks)
+	ProcSubmitDebugUtilsMessageEXT                                      :: #type proc "c" (instance: Instance, messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT)
+	ProcCmdSetSampleLocationsEXT                                        :: #type proc "c" (commandBuffer: CommandBuffer, pSampleLocationsInfo: ^SampleLocationsInfoEXT)
+	ProcGetPhysicalDeviceMultisamplePropertiesEXT                       :: #type proc "c" (physicalDevice: PhysicalDevice, samples: SampleCountFlags, pMultisampleProperties: ^MultisamplePropertiesEXT)
+	ProcGetImageDrmFormatModifierPropertiesEXT                          :: #type proc "c" (device: Device, image: Image, pProperties: ^ImageDrmFormatModifierPropertiesEXT) -> Result
+	ProcCreateValidationCacheEXT                                        :: #type proc "c" (device: Device, pCreateInfo: ^ValidationCacheCreateInfoEXT, pAllocator: ^AllocationCallbacks, pValidationCache: ^ValidationCacheEXT) -> Result
+	ProcDestroyValidationCacheEXT                                       :: #type proc "c" (device: Device, validationCache: ValidationCacheEXT, pAllocator: ^AllocationCallbacks)
+	ProcMergeValidationCachesEXT                                        :: #type proc "c" (device: Device, dstCache: ValidationCacheEXT, srcCacheCount: u32, pSrcCaches: ^ValidationCacheEXT) -> Result
+	ProcGetValidationCacheDataEXT                                       :: #type proc "c" (device: Device, validationCache: ValidationCacheEXT, pDataSize: ^int, pData: rawptr) -> Result
+	ProcCmdBindShadingRateImageNV                                       :: #type proc "c" (commandBuffer: CommandBuffer, imageView: ImageView, imageLayout: ImageLayout)
+	ProcCmdSetViewportShadingRatePaletteNV                              :: #type proc "c" (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pShadingRatePalettes: ^ShadingRatePaletteNV)
+	ProcCmdSetCoarseSampleOrderNV                                       :: #type proc "c" (commandBuffer: CommandBuffer, sampleOrderType: CoarseSampleOrderTypeNV, customSampleOrderCount: u32, pCustomSampleOrders: ^CoarseSampleOrderCustomNV)
+	ProcCreateAccelerationStructureNV                                   :: #type proc "c" (device: Device, pCreateInfo: ^AccelerationStructureCreateInfoNV, pAllocator: ^AllocationCallbacks, pAccelerationStructure: ^AccelerationStructureNV) -> Result
+	ProcDestroyAccelerationStructureNV                                  :: #type proc "c" (device: Device, accelerationStructure: AccelerationStructureNV, pAllocator: ^AllocationCallbacks)
+	ProcGetAccelerationStructureMemoryRequirementsNV                    :: #type proc "c" (device: Device, pInfo: ^AccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ^MemoryRequirements2KHR)
+	ProcBindAccelerationStructureMemoryNV                               :: #type proc "c" (device: Device, bindInfoCount: u32, pBindInfos: ^BindAccelerationStructureMemoryInfoNV) -> Result
+	ProcCmdBuildAccelerationStructureNV                                 :: #type proc "c" (commandBuffer: CommandBuffer, pInfo: ^AccelerationStructureInfoNV, instanceData: Buffer, instanceOffset: DeviceSize, update: b32, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratchOffset: DeviceSize)
+	ProcCmdCopyAccelerationStructureNV                                  :: #type proc "c" (commandBuffer: CommandBuffer, dst: AccelerationStructureNV, src: AccelerationStructureNV, mode: CopyAccelerationStructureModeKHR)
+	ProcCmdTraceRaysNV                                                  :: #type proc "c" (commandBuffer: CommandBuffer, raygenShaderBindingTableBuffer: Buffer, raygenShaderBindingOffset: DeviceSize, missShaderBindingTableBuffer: Buffer, missShaderBindingOffset: DeviceSize, missShaderBindingStride: DeviceSize, hitShaderBindingTableBuffer: Buffer, hitShaderBindingOffset: DeviceSize, hitShaderBindingStride: DeviceSize, callableShaderBindingTableBuffer: Buffer, callableShaderBindingOffset: DeviceSize, callableShaderBindingStride: DeviceSize, width: u32, height: u32, depth: u32)
+	ProcCreateRayTracingPipelinesNV                                     :: #type proc "c" (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^RayTracingPipelineCreateInfoNV, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result
+	ProcGetRayTracingShaderGroupHandlesKHR                              :: #type proc "c" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result
+	ProcGetRayTracingShaderGroupHandlesNV                               :: #type proc "c" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result
+	ProcGetAccelerationStructureHandleNV                                :: #type proc "c" (device: Device, accelerationStructure: AccelerationStructureNV, dataSize: int, pData: rawptr) -> Result
+	ProcCmdWriteAccelerationStructuresPropertiesNV                      :: #type proc "c" (commandBuffer: CommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureNV, queryType: QueryType, queryPool: QueryPool, firstQuery: u32)
+	ProcCompileDeferredNV                                               :: #type proc "c" (device: Device, pipeline: Pipeline, shader: u32) -> Result
+	ProcGetMemoryHostPointerPropertiesEXT                               :: #type proc "c" (device: Device, handleType: ExternalMemoryHandleTypeFlags, pHostPointer: rawptr, pMemoryHostPointerProperties: ^MemoryHostPointerPropertiesEXT) -> Result
+	ProcCmdWriteBufferMarkerAMD                                         :: #type proc "c" (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlags, dstBuffer: Buffer, dstOffset: DeviceSize, marker: u32)
+	ProcGetPhysicalDeviceCalibrateableTimeDomainsEXT                    :: #type proc "c" (physicalDevice: PhysicalDevice, pTimeDomainCount: ^u32, pTimeDomains: ^TimeDomainEXT) -> Result
+	ProcGetCalibratedTimestampsEXT                                      :: #type proc "c" (device: Device, timestampCount: u32, pTimestampInfos: ^CalibratedTimestampInfoEXT, pTimestamps: ^u64, pMaxDeviation: ^u64) -> Result
+	ProcCmdDrawMeshTasksNV                                              :: #type proc "c" (commandBuffer: CommandBuffer, taskCount: u32, firstTask: u32)
+	ProcCmdDrawMeshTasksIndirectNV                                      :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32)
+	ProcCmdDrawMeshTasksIndirectCountNV                                 :: #type proc "c" (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, countBuffer: Buffer, countBufferOffset: DeviceSize, maxDrawCount: u32, stride: u32)
+	ProcCmdSetExclusiveScissorNV                                        :: #type proc "c" (commandBuffer: CommandBuffer, firstExclusiveScissor: u32, exclusiveScissorCount: u32, pExclusiveScissors: ^Rect2D)
+	ProcCmdSetCheckpointNV                                              :: #type proc "c" (commandBuffer: CommandBuffer, pCheckpointMarker: rawptr)
+	ProcGetQueueCheckpointDataNV                                        :: #type proc "c" (queue: Queue, pCheckpointDataCount: ^u32, pCheckpointData: ^CheckpointDataNV)
+	ProcInitializePerformanceApiINTEL                                   :: #type proc "c" (device: Device, pInitializeInfo: ^InitializePerformanceApiInfoINTEL) -> Result
+	ProcUninitializePerformanceApiINTEL                                 :: #type proc "c" (device: Device)
+	ProcCmdSetPerformanceMarkerINTEL                                    :: #type proc "c" (commandBuffer: CommandBuffer, pMarkerInfo: ^PerformanceMarkerInfoINTEL) -> Result
+	ProcCmdSetPerformanceStreamMarkerINTEL                              :: #type proc "c" (commandBuffer: CommandBuffer, pMarkerInfo: ^PerformanceStreamMarkerInfoINTEL) -> Result
+	ProcCmdSetPerformanceOverrideINTEL                                  :: #type proc "c" (commandBuffer: CommandBuffer, pOverrideInfo: ^PerformanceOverrideInfoINTEL) -> Result
+	ProcAcquirePerformanceConfigurationINTEL                            :: #type proc "c" (device: Device, pAcquireInfo: ^PerformanceConfigurationAcquireInfoINTEL, pConfiguration: ^PerformanceConfigurationINTEL) -> Result
+	ProcReleasePerformanceConfigurationINTEL                            :: #type proc "c" (device: Device, configuration: PerformanceConfigurationINTEL) -> Result
+	ProcQueueSetPerformanceConfigurationINTEL                           :: #type proc "c" (queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result
+	ProcGetPerformanceParameterINTEL                                    :: #type proc "c" (device: Device, parameter: PerformanceParameterTypeINTEL, pValue: ^PerformanceValueINTEL) -> Result
+	ProcSetLocalDimmingAMD                                              :: #type proc "c" (device: Device, swapChain: SwapchainKHR, localDimmingEnable: b32)
+	ProcGetBufferDeviceAddressEXT                                       :: #type proc "c" (device: Device, pInfo: ^BufferDeviceAddressInfo) -> DeviceAddress
+	ProcGetPhysicalDeviceToolPropertiesEXT                              :: #type proc "c" (physicalDevice: PhysicalDevice, pToolCount: ^u32, pToolProperties: ^PhysicalDeviceToolPropertiesEXT) -> Result
+	ProcGetPhysicalDeviceCooperativeMatrixPropertiesNV                  :: #type proc "c" (physicalDevice: PhysicalDevice, pPropertyCount: ^u32, pProperties: ^CooperativeMatrixPropertiesNV) -> Result
+	ProcGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: #type proc "c" (physicalDevice: PhysicalDevice, pCombinationCount: ^u32, pCombinations: ^FramebufferMixedSamplesCombinationNV) -> Result
+	ProcCreateHeadlessSurfaceEXT                                        :: #type proc "c" (instance: Instance, pCreateInfo: ^HeadlessSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcCmdSetLineStippleEXT                                            :: #type proc "c" (commandBuffer: CommandBuffer, lineStippleFactor: u32, lineStipplePattern: u16)
+	ProcResetQueryPoolEXT                                               :: #type proc "c" (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32)
+	ProcCmdSetCullModeEXT                                               :: #type proc "c" (commandBuffer: CommandBuffer, cullMode: CullModeFlags)
+	ProcCmdSetFrontFaceEXT                                              :: #type proc "c" (commandBuffer: CommandBuffer, frontFace: FrontFace)
+	ProcCmdSetPrimitiveTopologyEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, primitiveTopology: PrimitiveTopology)
+	ProcCmdSetViewportWithCountEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, viewportCount: u32, pViewports: ^Viewport)
+	ProcCmdSetScissorWithCountEXT                                       :: #type proc "c" (commandBuffer: CommandBuffer, scissorCount: u32, pScissors: ^Rect2D)
+	ProcCmdBindVertexBuffers2EXT                                        :: #type proc "c" (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: ^Buffer, pOffsets: ^DeviceSize, pSizes: ^DeviceSize, pStrides: ^DeviceSize)
+	ProcCmdSetDepthTestEnableEXT                                        :: #type proc "c" (commandBuffer: CommandBuffer, depthTestEnable: b32)
+	ProcCmdSetDepthWriteEnableEXT                                       :: #type proc "c" (commandBuffer: CommandBuffer, depthWriteEnable: b32)
+	ProcCmdSetDepthCompareOpEXT                                         :: #type proc "c" (commandBuffer: CommandBuffer, depthCompareOp: CompareOp)
+	ProcCmdSetDepthBoundsTestEnableEXT                                  :: #type proc "c" (commandBuffer: CommandBuffer, depthBoundsTestEnable: b32)
+	ProcCmdSetStencilTestEnableEXT                                      :: #type proc "c" (commandBuffer: CommandBuffer, stencilTestEnable: b32)
+	ProcCmdSetStencilOpEXT                                              :: #type proc "c" (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, failOp: StencilOp, passOp: StencilOp, depthFailOp: StencilOp, compareOp: CompareOp)
+	ProcGetGeneratedCommandsMemoryRequirementsNV                        :: #type proc "c" (device: Device, pInfo: ^GeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ^MemoryRequirements2)
+	ProcCmdPreprocessGeneratedCommandsNV                                :: #type proc "c" (commandBuffer: CommandBuffer, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV)
+	ProcCmdExecuteGeneratedCommandsNV                                   :: #type proc "c" (commandBuffer: CommandBuffer, isPreprocessed: b32, pGeneratedCommandsInfo: ^GeneratedCommandsInfoNV)
+	ProcCmdBindPipelineShaderGroupNV                                    :: #type proc "c" (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline, groupIndex: u32)
+	ProcCreateIndirectCommandsLayoutNV                                  :: #type proc "c" (device: Device, pCreateInfo: ^IndirectCommandsLayoutCreateInfoNV, pAllocator: ^AllocationCallbacks, pIndirectCommandsLayout: ^IndirectCommandsLayoutNV) -> Result
+	ProcDestroyIndirectCommandsLayoutNV                                 :: #type proc "c" (device: Device, indirectCommandsLayout: IndirectCommandsLayoutNV, pAllocator: ^AllocationCallbacks)
+	ProcDeviceMemoryReportCallbackEXT                                   :: #type proc "c" (pCallbackData: ^DeviceMemoryReportCallbackDataEXT, pUserData: rawptr)
+	ProcAcquireDrmDisplayEXT                                            :: #type proc "c" (physicalDevice: PhysicalDevice, drmFd: i32, display: DisplayKHR) -> Result
+	ProcGetDrmDisplayEXT                                                :: #type proc "c" (physicalDevice: PhysicalDevice, drmFd: i32, connectorId: u32, display: ^DisplayKHR) -> Result
+	ProcCreatePrivateDataSlotEXT                                        :: #type proc "c" (device: Device, pCreateInfo: ^PrivateDataSlotCreateInfoEXT, pAllocator: ^AllocationCallbacks, pPrivateDataSlot: ^PrivateDataSlotEXT) -> Result
+	ProcDestroyPrivateDataSlotEXT                                       :: #type proc "c" (device: Device, privateDataSlot: PrivateDataSlotEXT, pAllocator: ^AllocationCallbacks)
+	ProcSetPrivateDataEXT                                               :: #type proc "c" (device: Device, objectType: ObjectType, objectHandle: u64, privateDataSlot: PrivateDataSlotEXT, data: u64) -> Result
+	ProcGetPrivateDataEXT                                               :: #type proc "c" (device: Device, objectType: ObjectType, objectHandle: u64, privateDataSlot: PrivateDataSlotEXT, pData: ^u64)
+	ProcCmdSetFragmentShadingRateEnumNV                                 :: #type proc "c" (commandBuffer: CommandBuffer, shadingRate: FragmentShadingRateNV)
+	ProcAcquireWinrtDisplayNV                                           :: #type proc "c" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result
+	ProcGetWinrtDisplayNV                                               :: #type proc "c" (physicalDevice: PhysicalDevice, deviceRelativeId: u32, pDisplay: ^DisplayKHR) -> Result
+	ProcCmdSetVertexInputEXT                                            :: #type proc "c" (commandBuffer: CommandBuffer, vertexBindingDescriptionCount: u32, pVertexBindingDescriptions: ^VertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: u32, pVertexAttributeDescriptions: ^VertexInputAttributeDescription2EXT)
+	ProcGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI                   :: #type proc "c" (device: Device, renderpass: RenderPass, pMaxWorkgroupSize: ^Extent2D) -> Result
+	ProcCmdSubpassShadingHUAWEI                                         :: #type proc "c" (commandBuffer: CommandBuffer)
+	ProcCmdBindInvocationMaskHUAWEI                                     :: #type proc "c" (commandBuffer: CommandBuffer, imageView: ImageView, imageLayout: ImageLayout)
+	ProcGetMemoryRemoteAddressNV                                        :: #type proc "c" (device: Device, pMemoryGetRemoteAddressInfo: ^MemoryGetRemoteAddressInfoNV, pAddress: ^RemoteAddressNV) -> Result
+	ProcCmdSetPatchControlPointsEXT                                     :: #type proc "c" (commandBuffer: CommandBuffer, patchControlPoints: u32)
+	ProcCmdSetRasterizerDiscardEnableEXT                                :: #type proc "c" (commandBuffer: CommandBuffer, rasterizerDiscardEnable: b32)
+	ProcCmdSetDepthBiasEnableEXT                                        :: #type proc "c" (commandBuffer: CommandBuffer, depthBiasEnable: b32)
+	ProcCmdSetLogicOpEXT                                                :: #type proc "c" (commandBuffer: CommandBuffer, logicOp: LogicOp)
+	ProcCmdSetPrimitiveRestartEnableEXT                                 :: #type proc "c" (commandBuffer: CommandBuffer, primitiveRestartEnable: b32)
+	ProcCmdDrawMultiEXT                                                 :: #type proc "c" (commandBuffer: CommandBuffer, drawCount: u32, pVertexInfo: ^MultiDrawInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32)
+	ProcCmdDrawMultiIndexedEXT                                          :: #type proc "c" (commandBuffer: CommandBuffer, drawCount: u32, pIndexInfo: ^MultiDrawIndexedInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32, pVertexOffset: ^i32)
+	ProcCreateAccelerationStructureKHR                                  :: #type proc "c" (device: Device, pCreateInfo: ^AccelerationStructureCreateInfoKHR, pAllocator: ^AllocationCallbacks, pAccelerationStructure: ^AccelerationStructureKHR) -> Result
+	ProcDestroyAccelerationStructureKHR                                 :: #type proc "c" (device: Device, accelerationStructure: AccelerationStructureKHR, pAllocator: ^AllocationCallbacks)
+	ProcCmdBuildAccelerationStructuresKHR                               :: #type proc "c" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^^AccelerationStructureBuildRangeInfoKHR)
+	ProcCmdBuildAccelerationStructuresIndirectKHR                       :: #type proc "c" (commandBuffer: CommandBuffer, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ^DeviceAddress, pIndirectStrides: ^u32, ppMaxPrimitiveCounts: ^^u32)
+	ProcBuildAccelerationStructuresKHR                                  :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, infoCount: u32, pInfos: ^AccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ^^AccelerationStructureBuildRangeInfoKHR) -> Result
+	ProcCopyAccelerationStructureKHR                                    :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureInfoKHR) -> Result
+	ProcCopyAccelerationStructureToMemoryKHR                            :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR) -> Result
+	ProcCopyMemoryToAccelerationStructureKHR                            :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, pInfo: ^CopyMemoryToAccelerationStructureInfoKHR) -> Result
+	ProcWriteAccelerationStructuresPropertiesKHR                        :: #type proc "c" (device: Device, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureKHR, queryType: QueryType, dataSize: int, pData: rawptr, stride: int) -> Result
+	ProcCmdCopyAccelerationStructureKHR                                 :: #type proc "c" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureInfoKHR)
+	ProcCmdCopyAccelerationStructureToMemoryKHR                         :: #type proc "c" (commandBuffer: CommandBuffer, pInfo: ^CopyAccelerationStructureToMemoryInfoKHR)
+	ProcCmdCopyMemoryToAccelerationStructureKHR                         :: #type proc "c" (commandBuffer: CommandBuffer, pInfo: ^CopyMemoryToAccelerationStructureInfoKHR)
+	ProcGetAccelerationStructureDeviceAddressKHR                        :: #type proc "c" (device: Device, pInfo: ^AccelerationStructureDeviceAddressInfoKHR) -> DeviceAddress
+	ProcCmdWriteAccelerationStructuresPropertiesKHR                     :: #type proc "c" (commandBuffer: CommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: ^AccelerationStructureKHR, queryType: QueryType, queryPool: QueryPool, firstQuery: u32)
+	ProcGetDeviceAccelerationStructureCompatibilityKHR                  :: #type proc "c" (device: Device, pVersionInfo: ^AccelerationStructureVersionInfoKHR, pCompatibility: ^AccelerationStructureCompatibilityKHR)
+	ProcGetAccelerationStructureBuildSizesKHR                           :: #type proc "c" (device: Device, buildType: AccelerationStructureBuildTypeKHR, pBuildInfo: ^AccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ^u32, pSizeInfo: ^AccelerationStructureBuildSizesInfoKHR)
+	ProcCmdTraceRaysKHR                                                 :: #type proc "c" (commandBuffer: CommandBuffer, pRaygenShaderBindingTable: ^StridedDeviceAddressRegionKHR, pMissShaderBindingTable: ^StridedDeviceAddressRegionKHR, pHitShaderBindingTable: ^StridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ^StridedDeviceAddressRegionKHR, width: u32, height: u32, depth: u32)
+	ProcCreateRayTracingPipelinesKHR                                    :: #type proc "c" (device: Device, deferredOperation: DeferredOperationKHR, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: ^RayTracingPipelineCreateInfoKHR, pAllocator: ^AllocationCallbacks, pPipelines: ^Pipeline) -> Result
+	ProcGetRayTracingCaptureReplayShaderGroupHandlesKHR                 :: #type proc "c" (device: Device, pipeline: Pipeline, firstGroup: u32, groupCount: u32, dataSize: int, pData: rawptr) -> Result
+	ProcCmdTraceRaysIndirectKHR                                         :: #type proc "c" (commandBuffer: CommandBuffer, pRaygenShaderBindingTable: ^StridedDeviceAddressRegionKHR, pMissShaderBindingTable: ^StridedDeviceAddressRegionKHR, pHitShaderBindingTable: ^StridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ^StridedDeviceAddressRegionKHR, indirectDeviceAddress: DeviceAddress)
+	ProcGetRayTracingShaderGroupStackSizeKHR                            :: #type proc "c" (device: Device, pipeline: Pipeline, group: u32, groupShader: ShaderGroupShaderKHR) -> DeviceSize
+	ProcCmdSetRayTracingPipelineStackSizeKHR                            :: #type proc "c" (commandBuffer: CommandBuffer, pipelineStackSize: u32)
+	ProcCreateWin32SurfaceKHR                                           :: #type proc "c" (instance: Instance, pCreateInfo: ^Win32SurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcGetPhysicalDeviceWin32PresentationSupportKHR                    :: #type proc "c" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32) -> b32
+	ProcGetMemoryWin32HandleKHR                                         :: #type proc "c" (device: Device, pGetWin32HandleInfo: ^MemoryGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result
+	ProcGetMemoryWin32HandlePropertiesKHR                               :: #type proc "c" (device: Device, handleType: ExternalMemoryHandleTypeFlags, handle: HANDLE, pMemoryWin32HandleProperties: ^MemoryWin32HandlePropertiesKHR) -> Result
+	ProcImportSemaphoreWin32HandleKHR                                   :: #type proc "c" (device: Device, pImportSemaphoreWin32HandleInfo: ^ImportSemaphoreWin32HandleInfoKHR) -> Result
+	ProcGetSemaphoreWin32HandleKHR                                      :: #type proc "c" (device: Device, pGetWin32HandleInfo: ^SemaphoreGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result
+	ProcImportFenceWin32HandleKHR                                       :: #type proc "c" (device: Device, pImportFenceWin32HandleInfo: ^ImportFenceWin32HandleInfoKHR) -> Result
+	ProcGetFenceWin32HandleKHR                                          :: #type proc "c" (device: Device, pGetWin32HandleInfo: ^FenceGetWin32HandleInfoKHR, pHandle: ^HANDLE) -> Result
+	ProcGetMemoryWin32HandleNV                                          :: #type proc "c" (device: Device, memory: DeviceMemory, handleType: ExternalMemoryHandleTypeFlagsNV, pHandle: ^HANDLE) -> Result
+	ProcGetPhysicalDeviceSurfacePresentModes2EXT                        :: #type proc "c" (physicalDevice: PhysicalDevice, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pPresentModeCount: ^u32, pPresentModes: ^PresentModeKHR) -> Result
+	ProcAcquireFullScreenExclusiveModeEXT                               :: #type proc "c" (device: Device, swapchain: SwapchainKHR) -> Result
+	ProcReleaseFullScreenExclusiveModeEXT                               :: #type proc "c" (device: Device, swapchain: SwapchainKHR) -> Result
+	ProcGetDeviceGroupSurfacePresentModes2EXT                           :: #type proc "c" (device: Device, pSurfaceInfo: ^PhysicalDeviceSurfaceInfo2KHR, pModes: ^DeviceGroupPresentModeFlagsKHR) -> Result
+	ProcCreateMetalSurfaceEXT                                           :: #type proc "c" (instance: Instance, pCreateInfo: ^MetalSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcCreateMacOSSurfaceMVK                                           :: #type proc "c" (instance: Instance, pCreateInfo: ^MacOSSurfaceCreateInfoMVK, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
+	ProcCreateIOSSurfaceMVK                                             :: #type proc "c" (instance: Instance, pCreateInfo: ^IOSSurfaceCreateInfoMVK, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
 }
 
 
 // Instance Procedures
-DestroyInstance:                                                 ProcDestroyInstance;
-EnumeratePhysicalDevices:                                        ProcEnumeratePhysicalDevices;
-GetPhysicalDeviceFeatures:                                       ProcGetPhysicalDeviceFeatures;
-GetPhysicalDeviceFormatProperties:                               ProcGetPhysicalDeviceFormatProperties;
-GetPhysicalDeviceImageFormatProperties:                          ProcGetPhysicalDeviceImageFormatProperties;
-GetPhysicalDeviceProperties:                                     ProcGetPhysicalDeviceProperties;
-GetPhysicalDeviceQueueFamilyProperties:                          ProcGetPhysicalDeviceQueueFamilyProperties;
-GetPhysicalDeviceMemoryProperties:                               ProcGetPhysicalDeviceMemoryProperties;
-GetInstanceProcAddr:                                             ProcGetInstanceProcAddr;
-CreateDevice:                                                    ProcCreateDevice;
-EnumerateDeviceExtensionProperties:                              ProcEnumerateDeviceExtensionProperties;
-EnumerateDeviceLayerProperties:                                  ProcEnumerateDeviceLayerProperties;
-GetPhysicalDeviceSparseImageFormatProperties:                    ProcGetPhysicalDeviceSparseImageFormatProperties;
-EnumeratePhysicalDeviceGroups:                                   ProcEnumeratePhysicalDeviceGroups;
-GetPhysicalDeviceFeatures2:                                      ProcGetPhysicalDeviceFeatures2;
-GetPhysicalDeviceProperties2:                                    ProcGetPhysicalDeviceProperties2;
-GetPhysicalDeviceFormatProperties2:                              ProcGetPhysicalDeviceFormatProperties2;
-GetPhysicalDeviceImageFormatProperties2:                         ProcGetPhysicalDeviceImageFormatProperties2;
-GetPhysicalDeviceQueueFamilyProperties2:                         ProcGetPhysicalDeviceQueueFamilyProperties2;
-GetPhysicalDeviceMemoryProperties2:                              ProcGetPhysicalDeviceMemoryProperties2;
-GetPhysicalDeviceSparseImageFormatProperties2:                   ProcGetPhysicalDeviceSparseImageFormatProperties2;
-GetPhysicalDeviceExternalBufferProperties:                       ProcGetPhysicalDeviceExternalBufferProperties;
-GetPhysicalDeviceExternalFenceProperties:                        ProcGetPhysicalDeviceExternalFenceProperties;
-GetPhysicalDeviceExternalSemaphoreProperties:                    ProcGetPhysicalDeviceExternalSemaphoreProperties;
-DestroySurfaceKHR:                                               ProcDestroySurfaceKHR;
-GetPhysicalDeviceSurfaceSupportKHR:                              ProcGetPhysicalDeviceSurfaceSupportKHR;
-GetPhysicalDeviceSurfaceCapabilitiesKHR:                         ProcGetPhysicalDeviceSurfaceCapabilitiesKHR;
-GetPhysicalDeviceSurfaceFormatsKHR:                              ProcGetPhysicalDeviceSurfaceFormatsKHR;
-GetPhysicalDeviceSurfacePresentModesKHR:                         ProcGetPhysicalDeviceSurfacePresentModesKHR;
-GetPhysicalDevicePresentRectanglesKHR:                           ProcGetPhysicalDevicePresentRectanglesKHR;
-GetPhysicalDeviceDisplayPropertiesKHR:                           ProcGetPhysicalDeviceDisplayPropertiesKHR;
-GetPhysicalDeviceDisplayPlanePropertiesKHR:                      ProcGetPhysicalDeviceDisplayPlanePropertiesKHR;
-GetDisplayPlaneSupportedDisplaysKHR:                             ProcGetDisplayPlaneSupportedDisplaysKHR;
-GetDisplayModePropertiesKHR:                                     ProcGetDisplayModePropertiesKHR;
-CreateDisplayModeKHR:                                            ProcCreateDisplayModeKHR;
-GetDisplayPlaneCapabilitiesKHR:                                  ProcGetDisplayPlaneCapabilitiesKHR;
-CreateDisplayPlaneSurfaceKHR:                                    ProcCreateDisplayPlaneSurfaceKHR;
-GetPhysicalDeviceFeatures2KHR:                                   ProcGetPhysicalDeviceFeatures2KHR;
-GetPhysicalDeviceProperties2KHR:                                 ProcGetPhysicalDeviceProperties2KHR;
-GetPhysicalDeviceFormatProperties2KHR:                           ProcGetPhysicalDeviceFormatProperties2KHR;
-GetPhysicalDeviceImageFormatProperties2KHR:                      ProcGetPhysicalDeviceImageFormatProperties2KHR;
-GetPhysicalDeviceQueueFamilyProperties2KHR:                      ProcGetPhysicalDeviceQueueFamilyProperties2KHR;
-GetPhysicalDeviceMemoryProperties2KHR:                           ProcGetPhysicalDeviceMemoryProperties2KHR;
-GetPhysicalDeviceSparseImageFormatProperties2KHR:                ProcGetPhysicalDeviceSparseImageFormatProperties2KHR;
-EnumeratePhysicalDeviceGroupsKHR:                                ProcEnumeratePhysicalDeviceGroupsKHR;
-GetPhysicalDeviceExternalBufferPropertiesKHR:                    ProcGetPhysicalDeviceExternalBufferPropertiesKHR;
-GetPhysicalDeviceExternalSemaphorePropertiesKHR:                 ProcGetPhysicalDeviceExternalSemaphorePropertiesKHR;
-GetPhysicalDeviceExternalFencePropertiesKHR:                     ProcGetPhysicalDeviceExternalFencePropertiesKHR;
-EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:   ProcEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
-GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:           ProcGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
-GetPhysicalDeviceSurfaceCapabilities2KHR:                        ProcGetPhysicalDeviceSurfaceCapabilities2KHR;
-GetPhysicalDeviceSurfaceFormats2KHR:                             ProcGetPhysicalDeviceSurfaceFormats2KHR;
-GetPhysicalDeviceDisplayProperties2KHR:                          ProcGetPhysicalDeviceDisplayProperties2KHR;
-GetPhysicalDeviceDisplayPlaneProperties2KHR:                     ProcGetPhysicalDeviceDisplayPlaneProperties2KHR;
-GetDisplayModeProperties2KHR:                                    ProcGetDisplayModeProperties2KHR;
-GetDisplayPlaneCapabilities2KHR:                                 ProcGetDisplayPlaneCapabilities2KHR;
-GetPhysicalDeviceFragmentShadingRatesKHR:                        ProcGetPhysicalDeviceFragmentShadingRatesKHR;
-CreateDebugReportCallbackEXT:                                    ProcCreateDebugReportCallbackEXT;
-DestroyDebugReportCallbackEXT:                                   ProcDestroyDebugReportCallbackEXT;
-DebugReportMessageEXT:                                           ProcDebugReportMessageEXT;
-GetPhysicalDeviceExternalImageFormatPropertiesNV:                ProcGetPhysicalDeviceExternalImageFormatPropertiesNV;
-ReleaseDisplayEXT:                                               ProcReleaseDisplayEXT;
-GetPhysicalDeviceSurfaceCapabilities2EXT:                        ProcGetPhysicalDeviceSurfaceCapabilities2EXT;
-CreateDebugUtilsMessengerEXT:                                    ProcCreateDebugUtilsMessengerEXT;
-DestroyDebugUtilsMessengerEXT:                                   ProcDestroyDebugUtilsMessengerEXT;
-SubmitDebugUtilsMessageEXT:                                      ProcSubmitDebugUtilsMessageEXT;
-GetPhysicalDeviceMultisamplePropertiesEXT:                       ProcGetPhysicalDeviceMultisamplePropertiesEXT;
-GetPhysicalDeviceCalibrateableTimeDomainsEXT:                    ProcGetPhysicalDeviceCalibrateableTimeDomainsEXT;
-GetPhysicalDeviceToolPropertiesEXT:                              ProcGetPhysicalDeviceToolPropertiesEXT;
-GetPhysicalDeviceCooperativeMatrixPropertiesNV:                  ProcGetPhysicalDeviceCooperativeMatrixPropertiesNV;
-GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: ProcGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
-CreateHeadlessSurfaceEXT:                                        ProcCreateHeadlessSurfaceEXT;
-AcquireDrmDisplayEXT:                                            ProcAcquireDrmDisplayEXT;
-GetDrmDisplayEXT:                                                ProcGetDrmDisplayEXT;
-AcquireWinrtDisplayNV:                                           ProcAcquireWinrtDisplayNV;
-GetWinrtDisplayNV:                                               ProcGetWinrtDisplayNV;
-CreateWin32SurfaceKHR:                                           ProcCreateWin32SurfaceKHR;
-GetPhysicalDeviceWin32PresentationSupportKHR:                    ProcGetPhysicalDeviceWin32PresentationSupportKHR;
-GetPhysicalDeviceSurfacePresentModes2EXT:                        ProcGetPhysicalDeviceSurfacePresentModes2EXT;
-CreateMetalSurfaceEXT:                                           ProcCreateMetalSurfaceEXT;
-CreateMacOSSurfaceMVK:                                           ProcCreateMacOSSurfaceMVK;
-CreateIOSSurfaceMVK:                                             ProcCreateIOSSurfaceMVK;
+DestroyInstance:                                                 ProcDestroyInstance
+EnumeratePhysicalDevices:                                        ProcEnumeratePhysicalDevices
+GetPhysicalDeviceFeatures:                                       ProcGetPhysicalDeviceFeatures
+GetPhysicalDeviceFormatProperties:                               ProcGetPhysicalDeviceFormatProperties
+GetPhysicalDeviceImageFormatProperties:                          ProcGetPhysicalDeviceImageFormatProperties
+GetPhysicalDeviceProperties:                                     ProcGetPhysicalDeviceProperties
+GetPhysicalDeviceQueueFamilyProperties:                          ProcGetPhysicalDeviceQueueFamilyProperties
+GetPhysicalDeviceMemoryProperties:                               ProcGetPhysicalDeviceMemoryProperties
+GetInstanceProcAddr:                                             ProcGetInstanceProcAddr
+CreateDevice:                                                    ProcCreateDevice
+EnumerateDeviceExtensionProperties:                              ProcEnumerateDeviceExtensionProperties
+EnumerateDeviceLayerProperties:                                  ProcEnumerateDeviceLayerProperties
+GetPhysicalDeviceSparseImageFormatProperties:                    ProcGetPhysicalDeviceSparseImageFormatProperties
+EnumeratePhysicalDeviceGroups:                                   ProcEnumeratePhysicalDeviceGroups
+GetPhysicalDeviceFeatures2:                                      ProcGetPhysicalDeviceFeatures2
+GetPhysicalDeviceProperties2:                                    ProcGetPhysicalDeviceProperties2
+GetPhysicalDeviceFormatProperties2:                              ProcGetPhysicalDeviceFormatProperties2
+GetPhysicalDeviceImageFormatProperties2:                         ProcGetPhysicalDeviceImageFormatProperties2
+GetPhysicalDeviceQueueFamilyProperties2:                         ProcGetPhysicalDeviceQueueFamilyProperties2
+GetPhysicalDeviceMemoryProperties2:                              ProcGetPhysicalDeviceMemoryProperties2
+GetPhysicalDeviceSparseImageFormatProperties2:                   ProcGetPhysicalDeviceSparseImageFormatProperties2
+GetPhysicalDeviceExternalBufferProperties:                       ProcGetPhysicalDeviceExternalBufferProperties
+GetPhysicalDeviceExternalFenceProperties:                        ProcGetPhysicalDeviceExternalFenceProperties
+GetPhysicalDeviceExternalSemaphoreProperties:                    ProcGetPhysicalDeviceExternalSemaphoreProperties
+DestroySurfaceKHR:                                               ProcDestroySurfaceKHR
+GetPhysicalDeviceSurfaceSupportKHR:                              ProcGetPhysicalDeviceSurfaceSupportKHR
+GetPhysicalDeviceSurfaceCapabilitiesKHR:                         ProcGetPhysicalDeviceSurfaceCapabilitiesKHR
+GetPhysicalDeviceSurfaceFormatsKHR:                              ProcGetPhysicalDeviceSurfaceFormatsKHR
+GetPhysicalDeviceSurfacePresentModesKHR:                         ProcGetPhysicalDeviceSurfacePresentModesKHR
+GetPhysicalDevicePresentRectanglesKHR:                           ProcGetPhysicalDevicePresentRectanglesKHR
+GetPhysicalDeviceDisplayPropertiesKHR:                           ProcGetPhysicalDeviceDisplayPropertiesKHR
+GetPhysicalDeviceDisplayPlanePropertiesKHR:                      ProcGetPhysicalDeviceDisplayPlanePropertiesKHR
+GetDisplayPlaneSupportedDisplaysKHR:                             ProcGetDisplayPlaneSupportedDisplaysKHR
+GetDisplayModePropertiesKHR:                                     ProcGetDisplayModePropertiesKHR
+CreateDisplayModeKHR:                                            ProcCreateDisplayModeKHR
+GetDisplayPlaneCapabilitiesKHR:                                  ProcGetDisplayPlaneCapabilitiesKHR
+CreateDisplayPlaneSurfaceKHR:                                    ProcCreateDisplayPlaneSurfaceKHR
+GetPhysicalDeviceFeatures2KHR:                                   ProcGetPhysicalDeviceFeatures2KHR
+GetPhysicalDeviceProperties2KHR:                                 ProcGetPhysicalDeviceProperties2KHR
+GetPhysicalDeviceFormatProperties2KHR:                           ProcGetPhysicalDeviceFormatProperties2KHR
+GetPhysicalDeviceImageFormatProperties2KHR:                      ProcGetPhysicalDeviceImageFormatProperties2KHR
+GetPhysicalDeviceQueueFamilyProperties2KHR:                      ProcGetPhysicalDeviceQueueFamilyProperties2KHR
+GetPhysicalDeviceMemoryProperties2KHR:                           ProcGetPhysicalDeviceMemoryProperties2KHR
+GetPhysicalDeviceSparseImageFormatProperties2KHR:                ProcGetPhysicalDeviceSparseImageFormatProperties2KHR
+EnumeratePhysicalDeviceGroupsKHR:                                ProcEnumeratePhysicalDeviceGroupsKHR
+GetPhysicalDeviceExternalBufferPropertiesKHR:                    ProcGetPhysicalDeviceExternalBufferPropertiesKHR
+GetPhysicalDeviceExternalSemaphorePropertiesKHR:                 ProcGetPhysicalDeviceExternalSemaphorePropertiesKHR
+GetPhysicalDeviceExternalFencePropertiesKHR:                     ProcGetPhysicalDeviceExternalFencePropertiesKHR
+EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:   ProcEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
+GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:           ProcGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
+GetPhysicalDeviceSurfaceCapabilities2KHR:                        ProcGetPhysicalDeviceSurfaceCapabilities2KHR
+GetPhysicalDeviceSurfaceFormats2KHR:                             ProcGetPhysicalDeviceSurfaceFormats2KHR
+GetPhysicalDeviceDisplayProperties2KHR:                          ProcGetPhysicalDeviceDisplayProperties2KHR
+GetPhysicalDeviceDisplayPlaneProperties2KHR:                     ProcGetPhysicalDeviceDisplayPlaneProperties2KHR
+GetDisplayModeProperties2KHR:                                    ProcGetDisplayModeProperties2KHR
+GetDisplayPlaneCapabilities2KHR:                                 ProcGetDisplayPlaneCapabilities2KHR
+GetPhysicalDeviceFragmentShadingRatesKHR:                        ProcGetPhysicalDeviceFragmentShadingRatesKHR
+CreateDebugReportCallbackEXT:                                    ProcCreateDebugReportCallbackEXT
+DestroyDebugReportCallbackEXT:                                   ProcDestroyDebugReportCallbackEXT
+DebugReportMessageEXT:                                           ProcDebugReportMessageEXT
+GetPhysicalDeviceExternalImageFormatPropertiesNV:                ProcGetPhysicalDeviceExternalImageFormatPropertiesNV
+ReleaseDisplayEXT:                                               ProcReleaseDisplayEXT
+GetPhysicalDeviceSurfaceCapabilities2EXT:                        ProcGetPhysicalDeviceSurfaceCapabilities2EXT
+CreateDebugUtilsMessengerEXT:                                    ProcCreateDebugUtilsMessengerEXT
+DestroyDebugUtilsMessengerEXT:                                   ProcDestroyDebugUtilsMessengerEXT
+SubmitDebugUtilsMessageEXT:                                      ProcSubmitDebugUtilsMessageEXT
+GetPhysicalDeviceMultisamplePropertiesEXT:                       ProcGetPhysicalDeviceMultisamplePropertiesEXT
+GetPhysicalDeviceCalibrateableTimeDomainsEXT:                    ProcGetPhysicalDeviceCalibrateableTimeDomainsEXT
+GetPhysicalDeviceToolPropertiesEXT:                              ProcGetPhysicalDeviceToolPropertiesEXT
+GetPhysicalDeviceCooperativeMatrixPropertiesNV:                  ProcGetPhysicalDeviceCooperativeMatrixPropertiesNV
+GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: ProcGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
+CreateHeadlessSurfaceEXT:                                        ProcCreateHeadlessSurfaceEXT
+AcquireDrmDisplayEXT:                                            ProcAcquireDrmDisplayEXT
+GetDrmDisplayEXT:                                                ProcGetDrmDisplayEXT
+AcquireWinrtDisplayNV:                                           ProcAcquireWinrtDisplayNV
+GetWinrtDisplayNV:                                               ProcGetWinrtDisplayNV
+CreateWin32SurfaceKHR:                                           ProcCreateWin32SurfaceKHR
+GetPhysicalDeviceWin32PresentationSupportKHR:                    ProcGetPhysicalDeviceWin32PresentationSupportKHR
+GetPhysicalDeviceSurfacePresentModes2EXT:                        ProcGetPhysicalDeviceSurfacePresentModes2EXT
+CreateMetalSurfaceEXT:                                           ProcCreateMetalSurfaceEXT
+CreateMacOSSurfaceMVK:                                           ProcCreateMacOSSurfaceMVK
+CreateIOSSurfaceMVK:                                             ProcCreateIOSSurfaceMVK
 
 // Device Procedures
-GetDeviceProcAddr:                               ProcGetDeviceProcAddr;
-DestroyDevice:                                   ProcDestroyDevice;
-GetDeviceQueue:                                  ProcGetDeviceQueue;
-QueueSubmit:                                     ProcQueueSubmit;
-QueueWaitIdle:                                   ProcQueueWaitIdle;
-DeviceWaitIdle:                                  ProcDeviceWaitIdle;
-AllocateMemory:                                  ProcAllocateMemory;
-FreeMemory:                                      ProcFreeMemory;
-MapMemory:                                       ProcMapMemory;
-UnmapMemory:                                     ProcUnmapMemory;
-FlushMappedMemoryRanges:                         ProcFlushMappedMemoryRanges;
-InvalidateMappedMemoryRanges:                    ProcInvalidateMappedMemoryRanges;
-GetDeviceMemoryCommitment:                       ProcGetDeviceMemoryCommitment;
-BindBufferMemory:                                ProcBindBufferMemory;
-BindImageMemory:                                 ProcBindImageMemory;
-GetBufferMemoryRequirements:                     ProcGetBufferMemoryRequirements;
-GetImageMemoryRequirements:                      ProcGetImageMemoryRequirements;
-GetImageSparseMemoryRequirements:                ProcGetImageSparseMemoryRequirements;
-QueueBindSparse:                                 ProcQueueBindSparse;
-CreateFence:                                     ProcCreateFence;
-DestroyFence:                                    ProcDestroyFence;
-ResetFences:                                     ProcResetFences;
-GetFenceStatus:                                  ProcGetFenceStatus;
-WaitForFences:                                   ProcWaitForFences;
-CreateSemaphore:                                 ProcCreateSemaphore;
-DestroySemaphore:                                ProcDestroySemaphore;
-CreateEvent:                                     ProcCreateEvent;
-DestroyEvent:                                    ProcDestroyEvent;
-GetEventStatus:                                  ProcGetEventStatus;
-SetEvent:                                        ProcSetEvent;
-ResetEvent:                                      ProcResetEvent;
-CreateQueryPool:                                 ProcCreateQueryPool;
-DestroyQueryPool:                                ProcDestroyQueryPool;
-GetQueryPoolResults:                             ProcGetQueryPoolResults;
-CreateBuffer:                                    ProcCreateBuffer;
-DestroyBuffer:                                   ProcDestroyBuffer;
-CreateBufferView:                                ProcCreateBufferView;
-DestroyBufferView:                               ProcDestroyBufferView;
-CreateImage:                                     ProcCreateImage;
-DestroyImage:                                    ProcDestroyImage;
-GetImageSubresourceLayout:                       ProcGetImageSubresourceLayout;
-CreateImageView:                                 ProcCreateImageView;
-DestroyImageView:                                ProcDestroyImageView;
-CreateShaderModule:                              ProcCreateShaderModule;
-DestroyShaderModule:                             ProcDestroyShaderModule;
-CreatePipelineCache:                             ProcCreatePipelineCache;
-DestroyPipelineCache:                            ProcDestroyPipelineCache;
-GetPipelineCacheData:                            ProcGetPipelineCacheData;
-MergePipelineCaches:                             ProcMergePipelineCaches;
-CreateGraphicsPipelines:                         ProcCreateGraphicsPipelines;
-CreateComputePipelines:                          ProcCreateComputePipelines;
-DestroyPipeline:                                 ProcDestroyPipeline;
-CreatePipelineLayout:                            ProcCreatePipelineLayout;
-DestroyPipelineLayout:                           ProcDestroyPipelineLayout;
-CreateSampler:                                   ProcCreateSampler;
-DestroySampler:                                  ProcDestroySampler;
-CreateDescriptorSetLayout:                       ProcCreateDescriptorSetLayout;
-DestroyDescriptorSetLayout:                      ProcDestroyDescriptorSetLayout;
-CreateDescriptorPool:                            ProcCreateDescriptorPool;
-DestroyDescriptorPool:                           ProcDestroyDescriptorPool;
-ResetDescriptorPool:                             ProcResetDescriptorPool;
-AllocateDescriptorSets:                          ProcAllocateDescriptorSets;
-FreeDescriptorSets:                              ProcFreeDescriptorSets;
-UpdateDescriptorSets:                            ProcUpdateDescriptorSets;
-CreateFramebuffer:                               ProcCreateFramebuffer;
-DestroyFramebuffer:                              ProcDestroyFramebuffer;
-CreateRenderPass:                                ProcCreateRenderPass;
-DestroyRenderPass:                               ProcDestroyRenderPass;
-GetRenderAreaGranularity:                        ProcGetRenderAreaGranularity;
-CreateCommandPool:                               ProcCreateCommandPool;
-DestroyCommandPool:                              ProcDestroyCommandPool;
-ResetCommandPool:                                ProcResetCommandPool;
-AllocateCommandBuffers:                          ProcAllocateCommandBuffers;
-FreeCommandBuffers:                              ProcFreeCommandBuffers;
-BeginCommandBuffer:                              ProcBeginCommandBuffer;
-EndCommandBuffer:                                ProcEndCommandBuffer;
-ResetCommandBuffer:                              ProcResetCommandBuffer;
-CmdBindPipeline:                                 ProcCmdBindPipeline;
-CmdSetViewport:                                  ProcCmdSetViewport;
-CmdSetScissor:                                   ProcCmdSetScissor;
-CmdSetLineWidth:                                 ProcCmdSetLineWidth;
-CmdSetDepthBias:                                 ProcCmdSetDepthBias;
-CmdSetBlendConstants:                            ProcCmdSetBlendConstants;
-CmdSetDepthBounds:                               ProcCmdSetDepthBounds;
-CmdSetStencilCompareMask:                        ProcCmdSetStencilCompareMask;
-CmdSetStencilWriteMask:                          ProcCmdSetStencilWriteMask;
-CmdSetStencilReference:                          ProcCmdSetStencilReference;
-CmdBindDescriptorSets:                           ProcCmdBindDescriptorSets;
-CmdBindIndexBuffer:                              ProcCmdBindIndexBuffer;
-CmdBindVertexBuffers:                            ProcCmdBindVertexBuffers;
-CmdDraw:                                         ProcCmdDraw;
-CmdDrawIndexed:                                  ProcCmdDrawIndexed;
-CmdDrawIndirect:                                 ProcCmdDrawIndirect;
-CmdDrawIndexedIndirect:                          ProcCmdDrawIndexedIndirect;
-CmdDispatch:                                     ProcCmdDispatch;
-CmdDispatchIndirect:                             ProcCmdDispatchIndirect;
-CmdCopyBuffer:                                   ProcCmdCopyBuffer;
-CmdCopyImage:                                    ProcCmdCopyImage;
-CmdBlitImage:                                    ProcCmdBlitImage;
-CmdCopyBufferToImage:                            ProcCmdCopyBufferToImage;
-CmdCopyImageToBuffer:                            ProcCmdCopyImageToBuffer;
-CmdUpdateBuffer:                                 ProcCmdUpdateBuffer;
-CmdFillBuffer:                                   ProcCmdFillBuffer;
-CmdClearColorImage:                              ProcCmdClearColorImage;
-CmdClearDepthStencilImage:                       ProcCmdClearDepthStencilImage;
-CmdClearAttachments:                             ProcCmdClearAttachments;
-CmdResolveImage:                                 ProcCmdResolveImage;
-CmdSetEvent:                                     ProcCmdSetEvent;
-CmdResetEvent:                                   ProcCmdResetEvent;
-CmdWaitEvents:                                   ProcCmdWaitEvents;
-CmdPipelineBarrier:                              ProcCmdPipelineBarrier;
-CmdBeginQuery:                                   ProcCmdBeginQuery;
-CmdEndQuery:                                     ProcCmdEndQuery;
-CmdResetQueryPool:                               ProcCmdResetQueryPool;
-CmdWriteTimestamp:                               ProcCmdWriteTimestamp;
-CmdCopyQueryPoolResults:                         ProcCmdCopyQueryPoolResults;
-CmdPushConstants:                                ProcCmdPushConstants;
-CmdBeginRenderPass:                              ProcCmdBeginRenderPass;
-CmdNextSubpass:                                  ProcCmdNextSubpass;
-CmdEndRenderPass:                                ProcCmdEndRenderPass;
-CmdExecuteCommands:                              ProcCmdExecuteCommands;
-BindBufferMemory2:                               ProcBindBufferMemory2;
-BindImageMemory2:                                ProcBindImageMemory2;
-GetDeviceGroupPeerMemoryFeatures:                ProcGetDeviceGroupPeerMemoryFeatures;
-CmdSetDeviceMask:                                ProcCmdSetDeviceMask;
-CmdDispatchBase:                                 ProcCmdDispatchBase;
-GetImageMemoryRequirements2:                     ProcGetImageMemoryRequirements2;
-GetBufferMemoryRequirements2:                    ProcGetBufferMemoryRequirements2;
-GetImageSparseMemoryRequirements2:               ProcGetImageSparseMemoryRequirements2;
-TrimCommandPool:                                 ProcTrimCommandPool;
-GetDeviceQueue2:                                 ProcGetDeviceQueue2;
-CreateSamplerYcbcrConversion:                    ProcCreateSamplerYcbcrConversion;
-DestroySamplerYcbcrConversion:                   ProcDestroySamplerYcbcrConversion;
-CreateDescriptorUpdateTemplate:                  ProcCreateDescriptorUpdateTemplate;
-DestroyDescriptorUpdateTemplate:                 ProcDestroyDescriptorUpdateTemplate;
-UpdateDescriptorSetWithTemplate:                 ProcUpdateDescriptorSetWithTemplate;
-GetDescriptorSetLayoutSupport:                   ProcGetDescriptorSetLayoutSupport;
-CmdDrawIndirectCount:                            ProcCmdDrawIndirectCount;
-CmdDrawIndexedIndirectCount:                     ProcCmdDrawIndexedIndirectCount;
-CreateRenderPass2:                               ProcCreateRenderPass2;
-CmdBeginRenderPass2:                             ProcCmdBeginRenderPass2;
-CmdNextSubpass2:                                 ProcCmdNextSubpass2;
-CmdEndRenderPass2:                               ProcCmdEndRenderPass2;
-ResetQueryPool:                                  ProcResetQueryPool;
-GetSemaphoreCounterValue:                        ProcGetSemaphoreCounterValue;
-WaitSemaphores:                                  ProcWaitSemaphores;
-SignalSemaphore:                                 ProcSignalSemaphore;
-GetBufferDeviceAddress:                          ProcGetBufferDeviceAddress;
-GetBufferOpaqueCaptureAddress:                   ProcGetBufferOpaqueCaptureAddress;
-GetDeviceMemoryOpaqueCaptureAddress:             ProcGetDeviceMemoryOpaqueCaptureAddress;
-CreateSwapchainKHR:                              ProcCreateSwapchainKHR;
-DestroySwapchainKHR:                             ProcDestroySwapchainKHR;
-GetSwapchainImagesKHR:                           ProcGetSwapchainImagesKHR;
-AcquireNextImageKHR:                             ProcAcquireNextImageKHR;
-QueuePresentKHR:                                 ProcQueuePresentKHR;
-GetDeviceGroupPresentCapabilitiesKHR:            ProcGetDeviceGroupPresentCapabilitiesKHR;
-GetDeviceGroupSurfacePresentModesKHR:            ProcGetDeviceGroupSurfacePresentModesKHR;
-AcquireNextImage2KHR:                            ProcAcquireNextImage2KHR;
-CreateSharedSwapchainsKHR:                       ProcCreateSharedSwapchainsKHR;
-GetDeviceGroupPeerMemoryFeaturesKHR:             ProcGetDeviceGroupPeerMemoryFeaturesKHR;
-CmdSetDeviceMaskKHR:                             ProcCmdSetDeviceMaskKHR;
-CmdDispatchBaseKHR:                              ProcCmdDispatchBaseKHR;
-TrimCommandPoolKHR:                              ProcTrimCommandPoolKHR;
-GetMemoryFdKHR:                                  ProcGetMemoryFdKHR;
-GetMemoryFdPropertiesKHR:                        ProcGetMemoryFdPropertiesKHR;
-ImportSemaphoreFdKHR:                            ProcImportSemaphoreFdKHR;
-GetSemaphoreFdKHR:                               ProcGetSemaphoreFdKHR;
-CmdPushDescriptorSetKHR:                         ProcCmdPushDescriptorSetKHR;
-CmdPushDescriptorSetWithTemplateKHR:             ProcCmdPushDescriptorSetWithTemplateKHR;
-CreateDescriptorUpdateTemplateKHR:               ProcCreateDescriptorUpdateTemplateKHR;
-DestroyDescriptorUpdateTemplateKHR:              ProcDestroyDescriptorUpdateTemplateKHR;
-UpdateDescriptorSetWithTemplateKHR:              ProcUpdateDescriptorSetWithTemplateKHR;
-CreateRenderPass2KHR:                            ProcCreateRenderPass2KHR;
-CmdBeginRenderPass2KHR:                          ProcCmdBeginRenderPass2KHR;
-CmdNextSubpass2KHR:                              ProcCmdNextSubpass2KHR;
-CmdEndRenderPass2KHR:                            ProcCmdEndRenderPass2KHR;
-GetSwapchainStatusKHR:                           ProcGetSwapchainStatusKHR;
-ImportFenceFdKHR:                                ProcImportFenceFdKHR;
-GetFenceFdKHR:                                   ProcGetFenceFdKHR;
-AcquireProfilingLockKHR:                         ProcAcquireProfilingLockKHR;
-ReleaseProfilingLockKHR:                         ProcReleaseProfilingLockKHR;
-GetImageMemoryRequirements2KHR:                  ProcGetImageMemoryRequirements2KHR;
-GetBufferMemoryRequirements2KHR:                 ProcGetBufferMemoryRequirements2KHR;
-GetImageSparseMemoryRequirements2KHR:            ProcGetImageSparseMemoryRequirements2KHR;
-CreateSamplerYcbcrConversionKHR:                 ProcCreateSamplerYcbcrConversionKHR;
-DestroySamplerYcbcrConversionKHR:                ProcDestroySamplerYcbcrConversionKHR;
-BindBufferMemory2KHR:                            ProcBindBufferMemory2KHR;
-BindImageMemory2KHR:                             ProcBindImageMemory2KHR;
-GetDescriptorSetLayoutSupportKHR:                ProcGetDescriptorSetLayoutSupportKHR;
-CmdDrawIndirectCountKHR:                         ProcCmdDrawIndirectCountKHR;
-CmdDrawIndexedIndirectCountKHR:                  ProcCmdDrawIndexedIndirectCountKHR;
-GetSemaphoreCounterValueKHR:                     ProcGetSemaphoreCounterValueKHR;
-WaitSemaphoresKHR:                               ProcWaitSemaphoresKHR;
-SignalSemaphoreKHR:                              ProcSignalSemaphoreKHR;
-CmdSetFragmentShadingRateKHR:                    ProcCmdSetFragmentShadingRateKHR;
-WaitForPresentKHR:                               ProcWaitForPresentKHR;
-GetBufferDeviceAddressKHR:                       ProcGetBufferDeviceAddressKHR;
-GetBufferOpaqueCaptureAddressKHR:                ProcGetBufferOpaqueCaptureAddressKHR;
-GetDeviceMemoryOpaqueCaptureAddressKHR:          ProcGetDeviceMemoryOpaqueCaptureAddressKHR;
-CreateDeferredOperationKHR:                      ProcCreateDeferredOperationKHR;
-DestroyDeferredOperationKHR:                     ProcDestroyDeferredOperationKHR;
-GetDeferredOperationMaxConcurrencyKHR:           ProcGetDeferredOperationMaxConcurrencyKHR;
-GetDeferredOperationResultKHR:                   ProcGetDeferredOperationResultKHR;
-DeferredOperationJoinKHR:                        ProcDeferredOperationJoinKHR;
-GetPipelineExecutablePropertiesKHR:              ProcGetPipelineExecutablePropertiesKHR;
-GetPipelineExecutableStatisticsKHR:              ProcGetPipelineExecutableStatisticsKHR;
-GetPipelineExecutableInternalRepresentationsKHR: ProcGetPipelineExecutableInternalRepresentationsKHR;
-CmdSetEvent2KHR:                                 ProcCmdSetEvent2KHR;
-CmdResetEvent2KHR:                               ProcCmdResetEvent2KHR;
-CmdWaitEvents2KHR:                               ProcCmdWaitEvents2KHR;
-CmdPipelineBarrier2KHR:                          ProcCmdPipelineBarrier2KHR;
-CmdWriteTimestamp2KHR:                           ProcCmdWriteTimestamp2KHR;
-QueueSubmit2KHR:                                 ProcQueueSubmit2KHR;
-CmdWriteBufferMarker2AMD:                        ProcCmdWriteBufferMarker2AMD;
-GetQueueCheckpointData2NV:                       ProcGetQueueCheckpointData2NV;
-CmdCopyBuffer2KHR:                               ProcCmdCopyBuffer2KHR;
-CmdCopyImage2KHR:                                ProcCmdCopyImage2KHR;
-CmdCopyBufferToImage2KHR:                        ProcCmdCopyBufferToImage2KHR;
-CmdCopyImageToBuffer2KHR:                        ProcCmdCopyImageToBuffer2KHR;
-CmdBlitImage2KHR:                                ProcCmdBlitImage2KHR;
-CmdResolveImage2KHR:                             ProcCmdResolveImage2KHR;
-DebugMarkerSetObjectTagEXT:                      ProcDebugMarkerSetObjectTagEXT;
-DebugMarkerSetObjectNameEXT:                     ProcDebugMarkerSetObjectNameEXT;
-CmdDebugMarkerBeginEXT:                          ProcCmdDebugMarkerBeginEXT;
-CmdDebugMarkerEndEXT:                            ProcCmdDebugMarkerEndEXT;
-CmdDebugMarkerInsertEXT:                         ProcCmdDebugMarkerInsertEXT;
-CmdBindTransformFeedbackBuffersEXT:              ProcCmdBindTransformFeedbackBuffersEXT;
-CmdBeginTransformFeedbackEXT:                    ProcCmdBeginTransformFeedbackEXT;
-CmdEndTransformFeedbackEXT:                      ProcCmdEndTransformFeedbackEXT;
-CmdBeginQueryIndexedEXT:                         ProcCmdBeginQueryIndexedEXT;
-CmdEndQueryIndexedEXT:                           ProcCmdEndQueryIndexedEXT;
-CmdDrawIndirectByteCountEXT:                     ProcCmdDrawIndirectByteCountEXT;
-CreateCuModuleNVX:                               ProcCreateCuModuleNVX;
-CreateCuFunctionNVX:                             ProcCreateCuFunctionNVX;
-DestroyCuModuleNVX:                              ProcDestroyCuModuleNVX;
-DestroyCuFunctionNVX:                            ProcDestroyCuFunctionNVX;
-CmdCuLaunchKernelNVX:                            ProcCmdCuLaunchKernelNVX;
-GetImageViewHandleNVX:                           ProcGetImageViewHandleNVX;
-GetImageViewAddressNVX:                          ProcGetImageViewAddressNVX;
-CmdDrawIndirectCountAMD:                         ProcCmdDrawIndirectCountAMD;
-CmdDrawIndexedIndirectCountAMD:                  ProcCmdDrawIndexedIndirectCountAMD;
-GetShaderInfoAMD:                                ProcGetShaderInfoAMD;
-CmdBeginConditionalRenderingEXT:                 ProcCmdBeginConditionalRenderingEXT;
-CmdEndConditionalRenderingEXT:                   ProcCmdEndConditionalRenderingEXT;
-CmdSetViewportWScalingNV:                        ProcCmdSetViewportWScalingNV;
-DisplayPowerControlEXT:                          ProcDisplayPowerControlEXT;
-RegisterDeviceEventEXT:                          ProcRegisterDeviceEventEXT;
-RegisterDisplayEventEXT:                         ProcRegisterDisplayEventEXT;
-GetSwapchainCounterEXT:                          ProcGetSwapchainCounterEXT;
-GetRefreshCycleDurationGOOGLE:                   ProcGetRefreshCycleDurationGOOGLE;
-GetPastPresentationTimingGOOGLE:                 ProcGetPastPresentationTimingGOOGLE;
-CmdSetDiscardRectangleEXT:                       ProcCmdSetDiscardRectangleEXT;
-SetHdrMetadataEXT:                               ProcSetHdrMetadataEXT;
-SetDebugUtilsObjectNameEXT:                      ProcSetDebugUtilsObjectNameEXT;
-SetDebugUtilsObjectTagEXT:                       ProcSetDebugUtilsObjectTagEXT;
-QueueBeginDebugUtilsLabelEXT:                    ProcQueueBeginDebugUtilsLabelEXT;
-QueueEndDebugUtilsLabelEXT:                      ProcQueueEndDebugUtilsLabelEXT;
-QueueInsertDebugUtilsLabelEXT:                   ProcQueueInsertDebugUtilsLabelEXT;
-CmdBeginDebugUtilsLabelEXT:                      ProcCmdBeginDebugUtilsLabelEXT;
-CmdEndDebugUtilsLabelEXT:                        ProcCmdEndDebugUtilsLabelEXT;
-CmdInsertDebugUtilsLabelEXT:                     ProcCmdInsertDebugUtilsLabelEXT;
-CmdSetSampleLocationsEXT:                        ProcCmdSetSampleLocationsEXT;
-GetImageDrmFormatModifierPropertiesEXT:          ProcGetImageDrmFormatModifierPropertiesEXT;
-CreateValidationCacheEXT:                        ProcCreateValidationCacheEXT;
-DestroyValidationCacheEXT:                       ProcDestroyValidationCacheEXT;
-MergeValidationCachesEXT:                        ProcMergeValidationCachesEXT;
-GetValidationCacheDataEXT:                       ProcGetValidationCacheDataEXT;
-CmdBindShadingRateImageNV:                       ProcCmdBindShadingRateImageNV;
-CmdSetViewportShadingRatePaletteNV:              ProcCmdSetViewportShadingRatePaletteNV;
-CmdSetCoarseSampleOrderNV:                       ProcCmdSetCoarseSampleOrderNV;
-CreateAccelerationStructureNV:                   ProcCreateAccelerationStructureNV;
-DestroyAccelerationStructureNV:                  ProcDestroyAccelerationStructureNV;
-GetAccelerationStructureMemoryRequirementsNV:    ProcGetAccelerationStructureMemoryRequirementsNV;
-BindAccelerationStructureMemoryNV:               ProcBindAccelerationStructureMemoryNV;
-CmdBuildAccelerationStructureNV:                 ProcCmdBuildAccelerationStructureNV;
-CmdCopyAccelerationStructureNV:                  ProcCmdCopyAccelerationStructureNV;
-CmdTraceRaysNV:                                  ProcCmdTraceRaysNV;
-CreateRayTracingPipelinesNV:                     ProcCreateRayTracingPipelinesNV;
-GetRayTracingShaderGroupHandlesKHR:              ProcGetRayTracingShaderGroupHandlesKHR;
-GetRayTracingShaderGroupHandlesNV:               ProcGetRayTracingShaderGroupHandlesNV;
-GetAccelerationStructureHandleNV:                ProcGetAccelerationStructureHandleNV;
-CmdWriteAccelerationStructuresPropertiesNV:      ProcCmdWriteAccelerationStructuresPropertiesNV;
-CompileDeferredNV:                               ProcCompileDeferredNV;
-GetMemoryHostPointerPropertiesEXT:               ProcGetMemoryHostPointerPropertiesEXT;
-CmdWriteBufferMarkerAMD:                         ProcCmdWriteBufferMarkerAMD;
-GetCalibratedTimestampsEXT:                      ProcGetCalibratedTimestampsEXT;
-CmdDrawMeshTasksNV:                              ProcCmdDrawMeshTasksNV;
-CmdDrawMeshTasksIndirectNV:                      ProcCmdDrawMeshTasksIndirectNV;
-CmdDrawMeshTasksIndirectCountNV:                 ProcCmdDrawMeshTasksIndirectCountNV;
-CmdSetExclusiveScissorNV:                        ProcCmdSetExclusiveScissorNV;
-CmdSetCheckpointNV:                              ProcCmdSetCheckpointNV;
-GetQueueCheckpointDataNV:                        ProcGetQueueCheckpointDataNV;
-InitializePerformanceApiINTEL:                   ProcInitializePerformanceApiINTEL;
-UninitializePerformanceApiINTEL:                 ProcUninitializePerformanceApiINTEL;
-CmdSetPerformanceMarkerINTEL:                    ProcCmdSetPerformanceMarkerINTEL;
-CmdSetPerformanceStreamMarkerINTEL:              ProcCmdSetPerformanceStreamMarkerINTEL;
-CmdSetPerformanceOverrideINTEL:                  ProcCmdSetPerformanceOverrideINTEL;
-AcquirePerformanceConfigurationINTEL:            ProcAcquirePerformanceConfigurationINTEL;
-ReleasePerformanceConfigurationINTEL:            ProcReleasePerformanceConfigurationINTEL;
-QueueSetPerformanceConfigurationINTEL:           ProcQueueSetPerformanceConfigurationINTEL;
-GetPerformanceParameterINTEL:                    ProcGetPerformanceParameterINTEL;
-SetLocalDimmingAMD:                              ProcSetLocalDimmingAMD;
-GetBufferDeviceAddressEXT:                       ProcGetBufferDeviceAddressEXT;
-CmdSetLineStippleEXT:                            ProcCmdSetLineStippleEXT;
-ResetQueryPoolEXT:                               ProcResetQueryPoolEXT;
-CmdSetCullModeEXT:                               ProcCmdSetCullModeEXT;
-CmdSetFrontFaceEXT:                              ProcCmdSetFrontFaceEXT;
-CmdSetPrimitiveTopologyEXT:                      ProcCmdSetPrimitiveTopologyEXT;
-CmdSetViewportWithCountEXT:                      ProcCmdSetViewportWithCountEXT;
-CmdSetScissorWithCountEXT:                       ProcCmdSetScissorWithCountEXT;
-CmdBindVertexBuffers2EXT:                        ProcCmdBindVertexBuffers2EXT;
-CmdSetDepthTestEnableEXT:                        ProcCmdSetDepthTestEnableEXT;
-CmdSetDepthWriteEnableEXT:                       ProcCmdSetDepthWriteEnableEXT;
-CmdSetDepthCompareOpEXT:                         ProcCmdSetDepthCompareOpEXT;
-CmdSetDepthBoundsTestEnableEXT:                  ProcCmdSetDepthBoundsTestEnableEXT;
-CmdSetStencilTestEnableEXT:                      ProcCmdSetStencilTestEnableEXT;
-CmdSetStencilOpEXT:                              ProcCmdSetStencilOpEXT;
-GetGeneratedCommandsMemoryRequirementsNV:        ProcGetGeneratedCommandsMemoryRequirementsNV;
-CmdPreprocessGeneratedCommandsNV:                ProcCmdPreprocessGeneratedCommandsNV;
-CmdExecuteGeneratedCommandsNV:                   ProcCmdExecuteGeneratedCommandsNV;
-CmdBindPipelineShaderGroupNV:                    ProcCmdBindPipelineShaderGroupNV;
-CreateIndirectCommandsLayoutNV:                  ProcCreateIndirectCommandsLayoutNV;
-DestroyIndirectCommandsLayoutNV:                 ProcDestroyIndirectCommandsLayoutNV;
-CreatePrivateDataSlotEXT:                        ProcCreatePrivateDataSlotEXT;
-DestroyPrivateDataSlotEXT:                       ProcDestroyPrivateDataSlotEXT;
-SetPrivateDataEXT:                               ProcSetPrivateDataEXT;
-GetPrivateDataEXT:                               ProcGetPrivateDataEXT;
-CmdSetFragmentShadingRateEnumNV:                 ProcCmdSetFragmentShadingRateEnumNV;
-CmdSetVertexInputEXT:                            ProcCmdSetVertexInputEXT;
-GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:   ProcGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
-CmdSubpassShadingHUAWEI:                         ProcCmdSubpassShadingHUAWEI;
-CmdBindInvocationMaskHUAWEI:                     ProcCmdBindInvocationMaskHUAWEI;
-GetMemoryRemoteAddressNV:                        ProcGetMemoryRemoteAddressNV;
-CmdSetPatchControlPointsEXT:                     ProcCmdSetPatchControlPointsEXT;
-CmdSetRasterizerDiscardEnableEXT:                ProcCmdSetRasterizerDiscardEnableEXT;
-CmdSetDepthBiasEnableEXT:                        ProcCmdSetDepthBiasEnableEXT;
-CmdSetLogicOpEXT:                                ProcCmdSetLogicOpEXT;
-CmdSetPrimitiveRestartEnableEXT:                 ProcCmdSetPrimitiveRestartEnableEXT;
-CmdDrawMultiEXT:                                 ProcCmdDrawMultiEXT;
-CmdDrawMultiIndexedEXT:                          ProcCmdDrawMultiIndexedEXT;
-CreateAccelerationStructureKHR:                  ProcCreateAccelerationStructureKHR;
-DestroyAccelerationStructureKHR:                 ProcDestroyAccelerationStructureKHR;
-CmdBuildAccelerationStructuresKHR:               ProcCmdBuildAccelerationStructuresKHR;
-CmdBuildAccelerationStructuresIndirectKHR:       ProcCmdBuildAccelerationStructuresIndirectKHR;
-BuildAccelerationStructuresKHR:                  ProcBuildAccelerationStructuresKHR;
-CopyAccelerationStructureKHR:                    ProcCopyAccelerationStructureKHR;
-CopyAccelerationStructureToMemoryKHR:            ProcCopyAccelerationStructureToMemoryKHR;
-CopyMemoryToAccelerationStructureKHR:            ProcCopyMemoryToAccelerationStructureKHR;
-WriteAccelerationStructuresPropertiesKHR:        ProcWriteAccelerationStructuresPropertiesKHR;
-CmdCopyAccelerationStructureKHR:                 ProcCmdCopyAccelerationStructureKHR;
-CmdCopyAccelerationStructureToMemoryKHR:         ProcCmdCopyAccelerationStructureToMemoryKHR;
-CmdCopyMemoryToAccelerationStructureKHR:         ProcCmdCopyMemoryToAccelerationStructureKHR;
-GetAccelerationStructureDeviceAddressKHR:        ProcGetAccelerationStructureDeviceAddressKHR;
-CmdWriteAccelerationStructuresPropertiesKHR:     ProcCmdWriteAccelerationStructuresPropertiesKHR;
-GetDeviceAccelerationStructureCompatibilityKHR:  ProcGetDeviceAccelerationStructureCompatibilityKHR;
-GetAccelerationStructureBuildSizesKHR:           ProcGetAccelerationStructureBuildSizesKHR;
-CmdTraceRaysKHR:                                 ProcCmdTraceRaysKHR;
-CreateRayTracingPipelinesKHR:                    ProcCreateRayTracingPipelinesKHR;
-GetRayTracingCaptureReplayShaderGroupHandlesKHR: ProcGetRayTracingCaptureReplayShaderGroupHandlesKHR;
-CmdTraceRaysIndirectKHR:                         ProcCmdTraceRaysIndirectKHR;
-GetRayTracingShaderGroupStackSizeKHR:            ProcGetRayTracingShaderGroupStackSizeKHR;
-CmdSetRayTracingPipelineStackSizeKHR:            ProcCmdSetRayTracingPipelineStackSizeKHR;
-GetMemoryWin32HandleKHR:                         ProcGetMemoryWin32HandleKHR;
-GetMemoryWin32HandlePropertiesKHR:               ProcGetMemoryWin32HandlePropertiesKHR;
-ImportSemaphoreWin32HandleKHR:                   ProcImportSemaphoreWin32HandleKHR;
-GetSemaphoreWin32HandleKHR:                      ProcGetSemaphoreWin32HandleKHR;
-ImportFenceWin32HandleKHR:                       ProcImportFenceWin32HandleKHR;
-GetFenceWin32HandleKHR:                          ProcGetFenceWin32HandleKHR;
-GetMemoryWin32HandleNV:                          ProcGetMemoryWin32HandleNV;
-AcquireFullScreenExclusiveModeEXT:               ProcAcquireFullScreenExclusiveModeEXT;
-ReleaseFullScreenExclusiveModeEXT:               ProcReleaseFullScreenExclusiveModeEXT;
-GetDeviceGroupSurfacePresentModes2EXT:           ProcGetDeviceGroupSurfacePresentModes2EXT;
+GetDeviceProcAddr:                               ProcGetDeviceProcAddr
+DestroyDevice:                                   ProcDestroyDevice
+GetDeviceQueue:                                  ProcGetDeviceQueue
+QueueSubmit:                                     ProcQueueSubmit
+QueueWaitIdle:                                   ProcQueueWaitIdle
+DeviceWaitIdle:                                  ProcDeviceWaitIdle
+AllocateMemory:                                  ProcAllocateMemory
+FreeMemory:                                      ProcFreeMemory
+MapMemory:                                       ProcMapMemory
+UnmapMemory:                                     ProcUnmapMemory
+FlushMappedMemoryRanges:                         ProcFlushMappedMemoryRanges
+InvalidateMappedMemoryRanges:                    ProcInvalidateMappedMemoryRanges
+GetDeviceMemoryCommitment:                       ProcGetDeviceMemoryCommitment
+BindBufferMemory:                                ProcBindBufferMemory
+BindImageMemory:                                 ProcBindImageMemory
+GetBufferMemoryRequirements:                     ProcGetBufferMemoryRequirements
+GetImageMemoryRequirements:                      ProcGetImageMemoryRequirements
+GetImageSparseMemoryRequirements:                ProcGetImageSparseMemoryRequirements
+QueueBindSparse:                                 ProcQueueBindSparse
+CreateFence:                                     ProcCreateFence
+DestroyFence:                                    ProcDestroyFence
+ResetFences:                                     ProcResetFences
+GetFenceStatus:                                  ProcGetFenceStatus
+WaitForFences:                                   ProcWaitForFences
+CreateSemaphore:                                 ProcCreateSemaphore
+DestroySemaphore:                                ProcDestroySemaphore
+CreateEvent:                                     ProcCreateEvent
+DestroyEvent:                                    ProcDestroyEvent
+GetEventStatus:                                  ProcGetEventStatus
+SetEvent:                                        ProcSetEvent
+ResetEvent:                                      ProcResetEvent
+CreateQueryPool:                                 ProcCreateQueryPool
+DestroyQueryPool:                                ProcDestroyQueryPool
+GetQueryPoolResults:                             ProcGetQueryPoolResults
+CreateBuffer:                                    ProcCreateBuffer
+DestroyBuffer:                                   ProcDestroyBuffer
+CreateBufferView:                                ProcCreateBufferView
+DestroyBufferView:                               ProcDestroyBufferView
+CreateImage:                                     ProcCreateImage
+DestroyImage:                                    ProcDestroyImage
+GetImageSubresourceLayout:                       ProcGetImageSubresourceLayout
+CreateImageView:                                 ProcCreateImageView
+DestroyImageView:                                ProcDestroyImageView
+CreateShaderModule:                              ProcCreateShaderModule
+DestroyShaderModule:                             ProcDestroyShaderModule
+CreatePipelineCache:                             ProcCreatePipelineCache
+DestroyPipelineCache:                            ProcDestroyPipelineCache
+GetPipelineCacheData:                            ProcGetPipelineCacheData
+MergePipelineCaches:                             ProcMergePipelineCaches
+CreateGraphicsPipelines:                         ProcCreateGraphicsPipelines
+CreateComputePipelines:                          ProcCreateComputePipelines
+DestroyPipeline:                                 ProcDestroyPipeline
+CreatePipelineLayout:                            ProcCreatePipelineLayout
+DestroyPipelineLayout:                           ProcDestroyPipelineLayout
+CreateSampler:                                   ProcCreateSampler
+DestroySampler:                                  ProcDestroySampler
+CreateDescriptorSetLayout:                       ProcCreateDescriptorSetLayout
+DestroyDescriptorSetLayout:                      ProcDestroyDescriptorSetLayout
+CreateDescriptorPool:                            ProcCreateDescriptorPool
+DestroyDescriptorPool:                           ProcDestroyDescriptorPool
+ResetDescriptorPool:                             ProcResetDescriptorPool
+AllocateDescriptorSets:                          ProcAllocateDescriptorSets
+FreeDescriptorSets:                              ProcFreeDescriptorSets
+UpdateDescriptorSets:                            ProcUpdateDescriptorSets
+CreateFramebuffer:                               ProcCreateFramebuffer
+DestroyFramebuffer:                              ProcDestroyFramebuffer
+CreateRenderPass:                                ProcCreateRenderPass
+DestroyRenderPass:                               ProcDestroyRenderPass
+GetRenderAreaGranularity:                        ProcGetRenderAreaGranularity
+CreateCommandPool:                               ProcCreateCommandPool
+DestroyCommandPool:                              ProcDestroyCommandPool
+ResetCommandPool:                                ProcResetCommandPool
+AllocateCommandBuffers:                          ProcAllocateCommandBuffers
+FreeCommandBuffers:                              ProcFreeCommandBuffers
+BeginCommandBuffer:                              ProcBeginCommandBuffer
+EndCommandBuffer:                                ProcEndCommandBuffer
+ResetCommandBuffer:                              ProcResetCommandBuffer
+CmdBindPipeline:                                 ProcCmdBindPipeline
+CmdSetViewport:                                  ProcCmdSetViewport
+CmdSetScissor:                                   ProcCmdSetScissor
+CmdSetLineWidth:                                 ProcCmdSetLineWidth
+CmdSetDepthBias:                                 ProcCmdSetDepthBias
+CmdSetBlendConstants:                            ProcCmdSetBlendConstants
+CmdSetDepthBounds:                               ProcCmdSetDepthBounds
+CmdSetStencilCompareMask:                        ProcCmdSetStencilCompareMask
+CmdSetStencilWriteMask:                          ProcCmdSetStencilWriteMask
+CmdSetStencilReference:                          ProcCmdSetStencilReference
+CmdBindDescriptorSets:                           ProcCmdBindDescriptorSets
+CmdBindIndexBuffer:                              ProcCmdBindIndexBuffer
+CmdBindVertexBuffers:                            ProcCmdBindVertexBuffers
+CmdDraw:                                         ProcCmdDraw
+CmdDrawIndexed:                                  ProcCmdDrawIndexed
+CmdDrawIndirect:                                 ProcCmdDrawIndirect
+CmdDrawIndexedIndirect:                          ProcCmdDrawIndexedIndirect
+CmdDispatch:                                     ProcCmdDispatch
+CmdDispatchIndirect:                             ProcCmdDispatchIndirect
+CmdCopyBuffer:                                   ProcCmdCopyBuffer
+CmdCopyImage:                                    ProcCmdCopyImage
+CmdBlitImage:                                    ProcCmdBlitImage
+CmdCopyBufferToImage:                            ProcCmdCopyBufferToImage
+CmdCopyImageToBuffer:                            ProcCmdCopyImageToBuffer
+CmdUpdateBuffer:                                 ProcCmdUpdateBuffer
+CmdFillBuffer:                                   ProcCmdFillBuffer
+CmdClearColorImage:                              ProcCmdClearColorImage
+CmdClearDepthStencilImage:                       ProcCmdClearDepthStencilImage
+CmdClearAttachments:                             ProcCmdClearAttachments
+CmdResolveImage:                                 ProcCmdResolveImage
+CmdSetEvent:                                     ProcCmdSetEvent
+CmdResetEvent:                                   ProcCmdResetEvent
+CmdWaitEvents:                                   ProcCmdWaitEvents
+CmdPipelineBarrier:                              ProcCmdPipelineBarrier
+CmdBeginQuery:                                   ProcCmdBeginQuery
+CmdEndQuery:                                     ProcCmdEndQuery
+CmdResetQueryPool:                               ProcCmdResetQueryPool
+CmdWriteTimestamp:                               ProcCmdWriteTimestamp
+CmdCopyQueryPoolResults:                         ProcCmdCopyQueryPoolResults
+CmdPushConstants:                                ProcCmdPushConstants
+CmdBeginRenderPass:                              ProcCmdBeginRenderPass
+CmdNextSubpass:                                  ProcCmdNextSubpass
+CmdEndRenderPass:                                ProcCmdEndRenderPass
+CmdExecuteCommands:                              ProcCmdExecuteCommands
+BindBufferMemory2:                               ProcBindBufferMemory2
+BindImageMemory2:                                ProcBindImageMemory2
+GetDeviceGroupPeerMemoryFeatures:                ProcGetDeviceGroupPeerMemoryFeatures
+CmdSetDeviceMask:                                ProcCmdSetDeviceMask
+CmdDispatchBase:                                 ProcCmdDispatchBase
+GetImageMemoryRequirements2:                     ProcGetImageMemoryRequirements2
+GetBufferMemoryRequirements2:                    ProcGetBufferMemoryRequirements2
+GetImageSparseMemoryRequirements2:               ProcGetImageSparseMemoryRequirements2
+TrimCommandPool:                                 ProcTrimCommandPool
+GetDeviceQueue2:                                 ProcGetDeviceQueue2
+CreateSamplerYcbcrConversion:                    ProcCreateSamplerYcbcrConversion
+DestroySamplerYcbcrConversion:                   ProcDestroySamplerYcbcrConversion
+CreateDescriptorUpdateTemplate:                  ProcCreateDescriptorUpdateTemplate
+DestroyDescriptorUpdateTemplate:                 ProcDestroyDescriptorUpdateTemplate
+UpdateDescriptorSetWithTemplate:                 ProcUpdateDescriptorSetWithTemplate
+GetDescriptorSetLayoutSupport:                   ProcGetDescriptorSetLayoutSupport
+CmdDrawIndirectCount:                            ProcCmdDrawIndirectCount
+CmdDrawIndexedIndirectCount:                     ProcCmdDrawIndexedIndirectCount
+CreateRenderPass2:                               ProcCreateRenderPass2
+CmdBeginRenderPass2:                             ProcCmdBeginRenderPass2
+CmdNextSubpass2:                                 ProcCmdNextSubpass2
+CmdEndRenderPass2:                               ProcCmdEndRenderPass2
+ResetQueryPool:                                  ProcResetQueryPool
+GetSemaphoreCounterValue:                        ProcGetSemaphoreCounterValue
+WaitSemaphores:                                  ProcWaitSemaphores
+SignalSemaphore:                                 ProcSignalSemaphore
+GetBufferDeviceAddress:                          ProcGetBufferDeviceAddress
+GetBufferOpaqueCaptureAddress:                   ProcGetBufferOpaqueCaptureAddress
+GetDeviceMemoryOpaqueCaptureAddress:             ProcGetDeviceMemoryOpaqueCaptureAddress
+CreateSwapchainKHR:                              ProcCreateSwapchainKHR
+DestroySwapchainKHR:                             ProcDestroySwapchainKHR
+GetSwapchainImagesKHR:                           ProcGetSwapchainImagesKHR
+AcquireNextImageKHR:                             ProcAcquireNextImageKHR
+QueuePresentKHR:                                 ProcQueuePresentKHR
+GetDeviceGroupPresentCapabilitiesKHR:            ProcGetDeviceGroupPresentCapabilitiesKHR
+GetDeviceGroupSurfacePresentModesKHR:            ProcGetDeviceGroupSurfacePresentModesKHR
+AcquireNextImage2KHR:                            ProcAcquireNextImage2KHR
+CreateSharedSwapchainsKHR:                       ProcCreateSharedSwapchainsKHR
+GetDeviceGroupPeerMemoryFeaturesKHR:             ProcGetDeviceGroupPeerMemoryFeaturesKHR
+CmdSetDeviceMaskKHR:                             ProcCmdSetDeviceMaskKHR
+CmdDispatchBaseKHR:                              ProcCmdDispatchBaseKHR
+TrimCommandPoolKHR:                              ProcTrimCommandPoolKHR
+GetMemoryFdKHR:                                  ProcGetMemoryFdKHR
+GetMemoryFdPropertiesKHR:                        ProcGetMemoryFdPropertiesKHR
+ImportSemaphoreFdKHR:                            ProcImportSemaphoreFdKHR
+GetSemaphoreFdKHR:                               ProcGetSemaphoreFdKHR
+CmdPushDescriptorSetKHR:                         ProcCmdPushDescriptorSetKHR
+CmdPushDescriptorSetWithTemplateKHR:             ProcCmdPushDescriptorSetWithTemplateKHR
+CreateDescriptorUpdateTemplateKHR:               ProcCreateDescriptorUpdateTemplateKHR
+DestroyDescriptorUpdateTemplateKHR:              ProcDestroyDescriptorUpdateTemplateKHR
+UpdateDescriptorSetWithTemplateKHR:              ProcUpdateDescriptorSetWithTemplateKHR
+CreateRenderPass2KHR:                            ProcCreateRenderPass2KHR
+CmdBeginRenderPass2KHR:                          ProcCmdBeginRenderPass2KHR
+CmdNextSubpass2KHR:                              ProcCmdNextSubpass2KHR
+CmdEndRenderPass2KHR:                            ProcCmdEndRenderPass2KHR
+GetSwapchainStatusKHR:                           ProcGetSwapchainStatusKHR
+ImportFenceFdKHR:                                ProcImportFenceFdKHR
+GetFenceFdKHR:                                   ProcGetFenceFdKHR
+AcquireProfilingLockKHR:                         ProcAcquireProfilingLockKHR
+ReleaseProfilingLockKHR:                         ProcReleaseProfilingLockKHR
+GetImageMemoryRequirements2KHR:                  ProcGetImageMemoryRequirements2KHR
+GetBufferMemoryRequirements2KHR:                 ProcGetBufferMemoryRequirements2KHR
+GetImageSparseMemoryRequirements2KHR:            ProcGetImageSparseMemoryRequirements2KHR
+CreateSamplerYcbcrConversionKHR:                 ProcCreateSamplerYcbcrConversionKHR
+DestroySamplerYcbcrConversionKHR:                ProcDestroySamplerYcbcrConversionKHR
+BindBufferMemory2KHR:                            ProcBindBufferMemory2KHR
+BindImageMemory2KHR:                             ProcBindImageMemory2KHR
+GetDescriptorSetLayoutSupportKHR:                ProcGetDescriptorSetLayoutSupportKHR
+CmdDrawIndirectCountKHR:                         ProcCmdDrawIndirectCountKHR
+CmdDrawIndexedIndirectCountKHR:                  ProcCmdDrawIndexedIndirectCountKHR
+GetSemaphoreCounterValueKHR:                     ProcGetSemaphoreCounterValueKHR
+WaitSemaphoresKHR:                               ProcWaitSemaphoresKHR
+SignalSemaphoreKHR:                              ProcSignalSemaphoreKHR
+CmdSetFragmentShadingRateKHR:                    ProcCmdSetFragmentShadingRateKHR
+WaitForPresentKHR:                               ProcWaitForPresentKHR
+GetBufferDeviceAddressKHR:                       ProcGetBufferDeviceAddressKHR
+GetBufferOpaqueCaptureAddressKHR:                ProcGetBufferOpaqueCaptureAddressKHR
+GetDeviceMemoryOpaqueCaptureAddressKHR:          ProcGetDeviceMemoryOpaqueCaptureAddressKHR
+CreateDeferredOperationKHR:                      ProcCreateDeferredOperationKHR
+DestroyDeferredOperationKHR:                     ProcDestroyDeferredOperationKHR
+GetDeferredOperationMaxConcurrencyKHR:           ProcGetDeferredOperationMaxConcurrencyKHR
+GetDeferredOperationResultKHR:                   ProcGetDeferredOperationResultKHR
+DeferredOperationJoinKHR:                        ProcDeferredOperationJoinKHR
+GetPipelineExecutablePropertiesKHR:              ProcGetPipelineExecutablePropertiesKHR
+GetPipelineExecutableStatisticsKHR:              ProcGetPipelineExecutableStatisticsKHR
+GetPipelineExecutableInternalRepresentationsKHR: ProcGetPipelineExecutableInternalRepresentationsKHR
+CmdSetEvent2KHR:                                 ProcCmdSetEvent2KHR
+CmdResetEvent2KHR:                               ProcCmdResetEvent2KHR
+CmdWaitEvents2KHR:                               ProcCmdWaitEvents2KHR
+CmdPipelineBarrier2KHR:                          ProcCmdPipelineBarrier2KHR
+CmdWriteTimestamp2KHR:                           ProcCmdWriteTimestamp2KHR
+QueueSubmit2KHR:                                 ProcQueueSubmit2KHR
+CmdWriteBufferMarker2AMD:                        ProcCmdWriteBufferMarker2AMD
+GetQueueCheckpointData2NV:                       ProcGetQueueCheckpointData2NV
+CmdCopyBuffer2KHR:                               ProcCmdCopyBuffer2KHR
+CmdCopyImage2KHR:                                ProcCmdCopyImage2KHR
+CmdCopyBufferToImage2KHR:                        ProcCmdCopyBufferToImage2KHR
+CmdCopyImageToBuffer2KHR:                        ProcCmdCopyImageToBuffer2KHR
+CmdBlitImage2KHR:                                ProcCmdBlitImage2KHR
+CmdResolveImage2KHR:                             ProcCmdResolveImage2KHR
+DebugMarkerSetObjectTagEXT:                      ProcDebugMarkerSetObjectTagEXT
+DebugMarkerSetObjectNameEXT:                     ProcDebugMarkerSetObjectNameEXT
+CmdDebugMarkerBeginEXT:                          ProcCmdDebugMarkerBeginEXT
+CmdDebugMarkerEndEXT:                            ProcCmdDebugMarkerEndEXT
+CmdDebugMarkerInsertEXT:                         ProcCmdDebugMarkerInsertEXT
+CmdBindTransformFeedbackBuffersEXT:              ProcCmdBindTransformFeedbackBuffersEXT
+CmdBeginTransformFeedbackEXT:                    ProcCmdBeginTransformFeedbackEXT
+CmdEndTransformFeedbackEXT:                      ProcCmdEndTransformFeedbackEXT
+CmdBeginQueryIndexedEXT:                         ProcCmdBeginQueryIndexedEXT
+CmdEndQueryIndexedEXT:                           ProcCmdEndQueryIndexedEXT
+CmdDrawIndirectByteCountEXT:                     ProcCmdDrawIndirectByteCountEXT
+CreateCuModuleNVX:                               ProcCreateCuModuleNVX
+CreateCuFunctionNVX:                             ProcCreateCuFunctionNVX
+DestroyCuModuleNVX:                              ProcDestroyCuModuleNVX
+DestroyCuFunctionNVX:                            ProcDestroyCuFunctionNVX
+CmdCuLaunchKernelNVX:                            ProcCmdCuLaunchKernelNVX
+GetImageViewHandleNVX:                           ProcGetImageViewHandleNVX
+GetImageViewAddressNVX:                          ProcGetImageViewAddressNVX
+CmdDrawIndirectCountAMD:                         ProcCmdDrawIndirectCountAMD
+CmdDrawIndexedIndirectCountAMD:                  ProcCmdDrawIndexedIndirectCountAMD
+GetShaderInfoAMD:                                ProcGetShaderInfoAMD
+CmdBeginConditionalRenderingEXT:                 ProcCmdBeginConditionalRenderingEXT
+CmdEndConditionalRenderingEXT:                   ProcCmdEndConditionalRenderingEXT
+CmdSetViewportWScalingNV:                        ProcCmdSetViewportWScalingNV
+DisplayPowerControlEXT:                          ProcDisplayPowerControlEXT
+RegisterDeviceEventEXT:                          ProcRegisterDeviceEventEXT
+RegisterDisplayEventEXT:                         ProcRegisterDisplayEventEXT
+GetSwapchainCounterEXT:                          ProcGetSwapchainCounterEXT
+GetRefreshCycleDurationGOOGLE:                   ProcGetRefreshCycleDurationGOOGLE
+GetPastPresentationTimingGOOGLE:                 ProcGetPastPresentationTimingGOOGLE
+CmdSetDiscardRectangleEXT:                       ProcCmdSetDiscardRectangleEXT
+SetHdrMetadataEXT:                               ProcSetHdrMetadataEXT
+SetDebugUtilsObjectNameEXT:                      ProcSetDebugUtilsObjectNameEXT
+SetDebugUtilsObjectTagEXT:                       ProcSetDebugUtilsObjectTagEXT
+QueueBeginDebugUtilsLabelEXT:                    ProcQueueBeginDebugUtilsLabelEXT
+QueueEndDebugUtilsLabelEXT:                      ProcQueueEndDebugUtilsLabelEXT
+QueueInsertDebugUtilsLabelEXT:                   ProcQueueInsertDebugUtilsLabelEXT
+CmdBeginDebugUtilsLabelEXT:                      ProcCmdBeginDebugUtilsLabelEXT
+CmdEndDebugUtilsLabelEXT:                        ProcCmdEndDebugUtilsLabelEXT
+CmdInsertDebugUtilsLabelEXT:                     ProcCmdInsertDebugUtilsLabelEXT
+CmdSetSampleLocationsEXT:                        ProcCmdSetSampleLocationsEXT
+GetImageDrmFormatModifierPropertiesEXT:          ProcGetImageDrmFormatModifierPropertiesEXT
+CreateValidationCacheEXT:                        ProcCreateValidationCacheEXT
+DestroyValidationCacheEXT:                       ProcDestroyValidationCacheEXT
+MergeValidationCachesEXT:                        ProcMergeValidationCachesEXT
+GetValidationCacheDataEXT:                       ProcGetValidationCacheDataEXT
+CmdBindShadingRateImageNV:                       ProcCmdBindShadingRateImageNV
+CmdSetViewportShadingRatePaletteNV:              ProcCmdSetViewportShadingRatePaletteNV
+CmdSetCoarseSampleOrderNV:                       ProcCmdSetCoarseSampleOrderNV
+CreateAccelerationStructureNV:                   ProcCreateAccelerationStructureNV
+DestroyAccelerationStructureNV:                  ProcDestroyAccelerationStructureNV
+GetAccelerationStructureMemoryRequirementsNV:    ProcGetAccelerationStructureMemoryRequirementsNV
+BindAccelerationStructureMemoryNV:               ProcBindAccelerationStructureMemoryNV
+CmdBuildAccelerationStructureNV:                 ProcCmdBuildAccelerationStructureNV
+CmdCopyAccelerationStructureNV:                  ProcCmdCopyAccelerationStructureNV
+CmdTraceRaysNV:                                  ProcCmdTraceRaysNV
+CreateRayTracingPipelinesNV:                     ProcCreateRayTracingPipelinesNV
+GetRayTracingShaderGroupHandlesKHR:              ProcGetRayTracingShaderGroupHandlesKHR
+GetRayTracingShaderGroupHandlesNV:               ProcGetRayTracingShaderGroupHandlesNV
+GetAccelerationStructureHandleNV:                ProcGetAccelerationStructureHandleNV
+CmdWriteAccelerationStructuresPropertiesNV:      ProcCmdWriteAccelerationStructuresPropertiesNV
+CompileDeferredNV:                               ProcCompileDeferredNV
+GetMemoryHostPointerPropertiesEXT:               ProcGetMemoryHostPointerPropertiesEXT
+CmdWriteBufferMarkerAMD:                         ProcCmdWriteBufferMarkerAMD
+GetCalibratedTimestampsEXT:                      ProcGetCalibratedTimestampsEXT
+CmdDrawMeshTasksNV:                              ProcCmdDrawMeshTasksNV
+CmdDrawMeshTasksIndirectNV:                      ProcCmdDrawMeshTasksIndirectNV
+CmdDrawMeshTasksIndirectCountNV:                 ProcCmdDrawMeshTasksIndirectCountNV
+CmdSetExclusiveScissorNV:                        ProcCmdSetExclusiveScissorNV
+CmdSetCheckpointNV:                              ProcCmdSetCheckpointNV
+GetQueueCheckpointDataNV:                        ProcGetQueueCheckpointDataNV
+InitializePerformanceApiINTEL:                   ProcInitializePerformanceApiINTEL
+UninitializePerformanceApiINTEL:                 ProcUninitializePerformanceApiINTEL
+CmdSetPerformanceMarkerINTEL:                    ProcCmdSetPerformanceMarkerINTEL
+CmdSetPerformanceStreamMarkerINTEL:              ProcCmdSetPerformanceStreamMarkerINTEL
+CmdSetPerformanceOverrideINTEL:                  ProcCmdSetPerformanceOverrideINTEL
+AcquirePerformanceConfigurationINTEL:            ProcAcquirePerformanceConfigurationINTEL
+ReleasePerformanceConfigurationINTEL:            ProcReleasePerformanceConfigurationINTEL
+QueueSetPerformanceConfigurationINTEL:           ProcQueueSetPerformanceConfigurationINTEL
+GetPerformanceParameterINTEL:                    ProcGetPerformanceParameterINTEL
+SetLocalDimmingAMD:                              ProcSetLocalDimmingAMD
+GetBufferDeviceAddressEXT:                       ProcGetBufferDeviceAddressEXT
+CmdSetLineStippleEXT:                            ProcCmdSetLineStippleEXT
+ResetQueryPoolEXT:                               ProcResetQueryPoolEXT
+CmdSetCullModeEXT:                               ProcCmdSetCullModeEXT
+CmdSetFrontFaceEXT:                              ProcCmdSetFrontFaceEXT
+CmdSetPrimitiveTopologyEXT:                      ProcCmdSetPrimitiveTopologyEXT
+CmdSetViewportWithCountEXT:                      ProcCmdSetViewportWithCountEXT
+CmdSetScissorWithCountEXT:                       ProcCmdSetScissorWithCountEXT
+CmdBindVertexBuffers2EXT:                        ProcCmdBindVertexBuffers2EXT
+CmdSetDepthTestEnableEXT:                        ProcCmdSetDepthTestEnableEXT
+CmdSetDepthWriteEnableEXT:                       ProcCmdSetDepthWriteEnableEXT
+CmdSetDepthCompareOpEXT:                         ProcCmdSetDepthCompareOpEXT
+CmdSetDepthBoundsTestEnableEXT:                  ProcCmdSetDepthBoundsTestEnableEXT
+CmdSetStencilTestEnableEXT:                      ProcCmdSetStencilTestEnableEXT
+CmdSetStencilOpEXT:                              ProcCmdSetStencilOpEXT
+GetGeneratedCommandsMemoryRequirementsNV:        ProcGetGeneratedCommandsMemoryRequirementsNV
+CmdPreprocessGeneratedCommandsNV:                ProcCmdPreprocessGeneratedCommandsNV
+CmdExecuteGeneratedCommandsNV:                   ProcCmdExecuteGeneratedCommandsNV
+CmdBindPipelineShaderGroupNV:                    ProcCmdBindPipelineShaderGroupNV
+CreateIndirectCommandsLayoutNV:                  ProcCreateIndirectCommandsLayoutNV
+DestroyIndirectCommandsLayoutNV:                 ProcDestroyIndirectCommandsLayoutNV
+CreatePrivateDataSlotEXT:                        ProcCreatePrivateDataSlotEXT
+DestroyPrivateDataSlotEXT:                       ProcDestroyPrivateDataSlotEXT
+SetPrivateDataEXT:                               ProcSetPrivateDataEXT
+GetPrivateDataEXT:                               ProcGetPrivateDataEXT
+CmdSetFragmentShadingRateEnumNV:                 ProcCmdSetFragmentShadingRateEnumNV
+CmdSetVertexInputEXT:                            ProcCmdSetVertexInputEXT
+GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI:   ProcGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI
+CmdSubpassShadingHUAWEI:                         ProcCmdSubpassShadingHUAWEI
+CmdBindInvocationMaskHUAWEI:                     ProcCmdBindInvocationMaskHUAWEI
+GetMemoryRemoteAddressNV:                        ProcGetMemoryRemoteAddressNV
+CmdSetPatchControlPointsEXT:                     ProcCmdSetPatchControlPointsEXT
+CmdSetRasterizerDiscardEnableEXT:                ProcCmdSetRasterizerDiscardEnableEXT
+CmdSetDepthBiasEnableEXT:                        ProcCmdSetDepthBiasEnableEXT
+CmdSetLogicOpEXT:                                ProcCmdSetLogicOpEXT
+CmdSetPrimitiveRestartEnableEXT:                 ProcCmdSetPrimitiveRestartEnableEXT
+CmdDrawMultiEXT:                                 ProcCmdDrawMultiEXT
+CmdDrawMultiIndexedEXT:                          ProcCmdDrawMultiIndexedEXT
+CreateAccelerationStructureKHR:                  ProcCreateAccelerationStructureKHR
+DestroyAccelerationStructureKHR:                 ProcDestroyAccelerationStructureKHR
+CmdBuildAccelerationStructuresKHR:               ProcCmdBuildAccelerationStructuresKHR
+CmdBuildAccelerationStructuresIndirectKHR:       ProcCmdBuildAccelerationStructuresIndirectKHR
+BuildAccelerationStructuresKHR:                  ProcBuildAccelerationStructuresKHR
+CopyAccelerationStructureKHR:                    ProcCopyAccelerationStructureKHR
+CopyAccelerationStructureToMemoryKHR:            ProcCopyAccelerationStructureToMemoryKHR
+CopyMemoryToAccelerationStructureKHR:            ProcCopyMemoryToAccelerationStructureKHR
+WriteAccelerationStructuresPropertiesKHR:        ProcWriteAccelerationStructuresPropertiesKHR
+CmdCopyAccelerationStructureKHR:                 ProcCmdCopyAccelerationStructureKHR
+CmdCopyAccelerationStructureToMemoryKHR:         ProcCmdCopyAccelerationStructureToMemoryKHR
+CmdCopyMemoryToAccelerationStructureKHR:         ProcCmdCopyMemoryToAccelerationStructureKHR
+GetAccelerationStructureDeviceAddressKHR:        ProcGetAccelerationStructureDeviceAddressKHR
+CmdWriteAccelerationStructuresPropertiesKHR:     ProcCmdWriteAccelerationStructuresPropertiesKHR
+GetDeviceAccelerationStructureCompatibilityKHR:  ProcGetDeviceAccelerationStructureCompatibilityKHR
+GetAccelerationStructureBuildSizesKHR:           ProcGetAccelerationStructureBuildSizesKHR
+CmdTraceRaysKHR:                                 ProcCmdTraceRaysKHR
+CreateRayTracingPipelinesKHR:                    ProcCreateRayTracingPipelinesKHR
+GetRayTracingCaptureReplayShaderGroupHandlesKHR: ProcGetRayTracingCaptureReplayShaderGroupHandlesKHR
+CmdTraceRaysIndirectKHR:                         ProcCmdTraceRaysIndirectKHR
+GetRayTracingShaderGroupStackSizeKHR:            ProcGetRayTracingShaderGroupStackSizeKHR
+CmdSetRayTracingPipelineStackSizeKHR:            ProcCmdSetRayTracingPipelineStackSizeKHR
+GetMemoryWin32HandleKHR:                         ProcGetMemoryWin32HandleKHR
+GetMemoryWin32HandlePropertiesKHR:               ProcGetMemoryWin32HandlePropertiesKHR
+ImportSemaphoreWin32HandleKHR:                   ProcImportSemaphoreWin32HandleKHR
+GetSemaphoreWin32HandleKHR:                      ProcGetSemaphoreWin32HandleKHR
+ImportFenceWin32HandleKHR:                       ProcImportFenceWin32HandleKHR
+GetFenceWin32HandleKHR:                          ProcGetFenceWin32HandleKHR
+GetMemoryWin32HandleNV:                          ProcGetMemoryWin32HandleNV
+AcquireFullScreenExclusiveModeEXT:               ProcAcquireFullScreenExclusiveModeEXT
+ReleaseFullScreenExclusiveModeEXT:               ProcReleaseFullScreenExclusiveModeEXT
+GetDeviceGroupSurfacePresentModes2EXT:           ProcGetDeviceGroupSurfacePresentModes2EXT
 
 // Loader Procedures
-CreateInstance:                       ProcCreateInstance;
-EnumerateInstanceExtensionProperties: ProcEnumerateInstanceExtensionProperties;
-EnumerateInstanceLayerProperties:     ProcEnumerateInstanceLayerProperties;
-EnumerateInstanceVersion:             ProcEnumerateInstanceVersion;
-DebugUtilsMessengerCallbackEXT:       ProcDebugUtilsMessengerCallbackEXT;
-DeviceMemoryReportCallbackEXT:        ProcDeviceMemoryReportCallbackEXT;
+CreateInstance:                       ProcCreateInstance
+EnumerateInstanceExtensionProperties: ProcEnumerateInstanceExtensionProperties
+EnumerateInstanceLayerProperties:     ProcEnumerateInstanceLayerProperties
+EnumerateInstanceVersion:             ProcEnumerateInstanceVersion
+DebugUtilsMessengerCallbackEXT:       ProcDebugUtilsMessengerCallbackEXT
+DeviceMemoryReportCallbackEXT:        ProcDeviceMemoryReportCallbackEXT
 
 load_proc_addresses :: proc(set_proc_address: SetProcAddressType) {
 	// Instance Procedures
-	set_proc_address(&DestroyInstance,                                                 "vkDestroyInstance");
-	set_proc_address(&EnumeratePhysicalDevices,                                        "vkEnumeratePhysicalDevices");
-	set_proc_address(&GetPhysicalDeviceFeatures,                                       "vkGetPhysicalDeviceFeatures");
-	set_proc_address(&GetPhysicalDeviceFormatProperties,                               "vkGetPhysicalDeviceFormatProperties");
-	set_proc_address(&GetPhysicalDeviceImageFormatProperties,                          "vkGetPhysicalDeviceImageFormatProperties");
-	set_proc_address(&GetPhysicalDeviceProperties,                                     "vkGetPhysicalDeviceProperties");
-	set_proc_address(&GetPhysicalDeviceQueueFamilyProperties,                          "vkGetPhysicalDeviceQueueFamilyProperties");
-	set_proc_address(&GetPhysicalDeviceMemoryProperties,                               "vkGetPhysicalDeviceMemoryProperties");
-	set_proc_address(&GetInstanceProcAddr,                                             "vkGetInstanceProcAddr");
-	set_proc_address(&CreateDevice,                                                    "vkCreateDevice");
-	set_proc_address(&EnumerateDeviceExtensionProperties,                              "vkEnumerateDeviceExtensionProperties");
-	set_proc_address(&EnumerateDeviceLayerProperties,                                  "vkEnumerateDeviceLayerProperties");
-	set_proc_address(&GetPhysicalDeviceSparseImageFormatProperties,                    "vkGetPhysicalDeviceSparseImageFormatProperties");
-	set_proc_address(&EnumeratePhysicalDeviceGroups,                                   "vkEnumeratePhysicalDeviceGroups");
-	set_proc_address(&GetPhysicalDeviceFeatures2,                                      "vkGetPhysicalDeviceFeatures2");
-	set_proc_address(&GetPhysicalDeviceProperties2,                                    "vkGetPhysicalDeviceProperties2");
-	set_proc_address(&GetPhysicalDeviceFormatProperties2,                              "vkGetPhysicalDeviceFormatProperties2");
-	set_proc_address(&GetPhysicalDeviceImageFormatProperties2,                         "vkGetPhysicalDeviceImageFormatProperties2");
-	set_proc_address(&GetPhysicalDeviceQueueFamilyProperties2,                         "vkGetPhysicalDeviceQueueFamilyProperties2");
-	set_proc_address(&GetPhysicalDeviceMemoryProperties2,                              "vkGetPhysicalDeviceMemoryProperties2");
-	set_proc_address(&GetPhysicalDeviceSparseImageFormatProperties2,                   "vkGetPhysicalDeviceSparseImageFormatProperties2");
-	set_proc_address(&GetPhysicalDeviceExternalBufferProperties,                       "vkGetPhysicalDeviceExternalBufferProperties");
-	set_proc_address(&GetPhysicalDeviceExternalFenceProperties,                        "vkGetPhysicalDeviceExternalFenceProperties");
-	set_proc_address(&GetPhysicalDeviceExternalSemaphoreProperties,                    "vkGetPhysicalDeviceExternalSemaphoreProperties");
-	set_proc_address(&DestroySurfaceKHR,                                               "vkDestroySurfaceKHR");
-	set_proc_address(&GetPhysicalDeviceSurfaceSupportKHR,                              "vkGetPhysicalDeviceSurfaceSupportKHR");
-	set_proc_address(&GetPhysicalDeviceSurfaceCapabilitiesKHR,                         "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
-	set_proc_address(&GetPhysicalDeviceSurfaceFormatsKHR,                              "vkGetPhysicalDeviceSurfaceFormatsKHR");
-	set_proc_address(&GetPhysicalDeviceSurfacePresentModesKHR,                         "vkGetPhysicalDeviceSurfacePresentModesKHR");
-	set_proc_address(&GetPhysicalDevicePresentRectanglesKHR,                           "vkGetPhysicalDevicePresentRectanglesKHR");
-	set_proc_address(&GetPhysicalDeviceDisplayPropertiesKHR,                           "vkGetPhysicalDeviceDisplayPropertiesKHR");
-	set_proc_address(&GetPhysicalDeviceDisplayPlanePropertiesKHR,                      "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
-	set_proc_address(&GetDisplayPlaneSupportedDisplaysKHR,                             "vkGetDisplayPlaneSupportedDisplaysKHR");
-	set_proc_address(&GetDisplayModePropertiesKHR,                                     "vkGetDisplayModePropertiesKHR");
-	set_proc_address(&CreateDisplayModeKHR,                                            "vkCreateDisplayModeKHR");
-	set_proc_address(&GetDisplayPlaneCapabilitiesKHR,                                  "vkGetDisplayPlaneCapabilitiesKHR");
-	set_proc_address(&CreateDisplayPlaneSurfaceKHR,                                    "vkCreateDisplayPlaneSurfaceKHR");
-	set_proc_address(&GetPhysicalDeviceFeatures2KHR,                                   "vkGetPhysicalDeviceFeatures2KHR");
-	set_proc_address(&GetPhysicalDeviceProperties2KHR,                                 "vkGetPhysicalDeviceProperties2KHR");
-	set_proc_address(&GetPhysicalDeviceFormatProperties2KHR,                           "vkGetPhysicalDeviceFormatProperties2KHR");
-	set_proc_address(&GetPhysicalDeviceImageFormatProperties2KHR,                      "vkGetPhysicalDeviceImageFormatProperties2KHR");
-	set_proc_address(&GetPhysicalDeviceQueueFamilyProperties2KHR,                      "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
-	set_proc_address(&GetPhysicalDeviceMemoryProperties2KHR,                           "vkGetPhysicalDeviceMemoryProperties2KHR");
-	set_proc_address(&GetPhysicalDeviceSparseImageFormatProperties2KHR,                "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
-	set_proc_address(&EnumeratePhysicalDeviceGroupsKHR,                                "vkEnumeratePhysicalDeviceGroupsKHR");
-	set_proc_address(&GetPhysicalDeviceExternalBufferPropertiesKHR,                    "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
-	set_proc_address(&GetPhysicalDeviceExternalSemaphorePropertiesKHR,                 "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
-	set_proc_address(&GetPhysicalDeviceExternalFencePropertiesKHR,                     "vkGetPhysicalDeviceExternalFencePropertiesKHR");
-	set_proc_address(&EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,   "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
-	set_proc_address(&GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,           "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
-	set_proc_address(&GetPhysicalDeviceSurfaceCapabilities2KHR,                        "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
-	set_proc_address(&GetPhysicalDeviceSurfaceFormats2KHR,                             "vkGetPhysicalDeviceSurfaceFormats2KHR");
-	set_proc_address(&GetPhysicalDeviceDisplayProperties2KHR,                          "vkGetPhysicalDeviceDisplayProperties2KHR");
-	set_proc_address(&GetPhysicalDeviceDisplayPlaneProperties2KHR,                     "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
-	set_proc_address(&GetDisplayModeProperties2KHR,                                    "vkGetDisplayModeProperties2KHR");
-	set_proc_address(&GetDisplayPlaneCapabilities2KHR,                                 "vkGetDisplayPlaneCapabilities2KHR");
-	set_proc_address(&GetPhysicalDeviceFragmentShadingRatesKHR,                        "vkGetPhysicalDeviceFragmentShadingRatesKHR");
-	set_proc_address(&CreateDebugReportCallbackEXT,                                    "vkCreateDebugReportCallbackEXT");
-	set_proc_address(&DestroyDebugReportCallbackEXT,                                   "vkDestroyDebugReportCallbackEXT");
-	set_proc_address(&DebugReportMessageEXT,                                           "vkDebugReportMessageEXT");
-	set_proc_address(&GetPhysicalDeviceExternalImageFormatPropertiesNV,                "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
-	set_proc_address(&ReleaseDisplayEXT,                                               "vkReleaseDisplayEXT");
-	set_proc_address(&GetPhysicalDeviceSurfaceCapabilities2EXT,                        "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
-	set_proc_address(&CreateDebugUtilsMessengerEXT,                                    "vkCreateDebugUtilsMessengerEXT");
-	set_proc_address(&DestroyDebugUtilsMessengerEXT,                                   "vkDestroyDebugUtilsMessengerEXT");
-	set_proc_address(&SubmitDebugUtilsMessageEXT,                                      "vkSubmitDebugUtilsMessageEXT");
-	set_proc_address(&GetPhysicalDeviceMultisamplePropertiesEXT,                       "vkGetPhysicalDeviceMultisamplePropertiesEXT");
-	set_proc_address(&GetPhysicalDeviceCalibrateableTimeDomainsEXT,                    "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
-	set_proc_address(&GetPhysicalDeviceToolPropertiesEXT,                              "vkGetPhysicalDeviceToolPropertiesEXT");
-	set_proc_address(&GetPhysicalDeviceCooperativeMatrixPropertiesNV,                  "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
-	set_proc_address(&GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
-	set_proc_address(&CreateHeadlessSurfaceEXT,                                        "vkCreateHeadlessSurfaceEXT");
-	set_proc_address(&AcquireDrmDisplayEXT,                                            "vkAcquireDrmDisplayEXT");
-	set_proc_address(&GetDrmDisplayEXT,                                                "vkGetDrmDisplayEXT");
-	set_proc_address(&AcquireWinrtDisplayNV,                                           "vkAcquireWinrtDisplayNV");
-	set_proc_address(&GetWinrtDisplayNV,                                               "vkGetWinrtDisplayNV");
-	set_proc_address(&CreateWin32SurfaceKHR,                                           "vkCreateWin32SurfaceKHR");
-	set_proc_address(&GetPhysicalDeviceWin32PresentationSupportKHR,                    "vkGetPhysicalDeviceWin32PresentationSupportKHR");
-	set_proc_address(&GetPhysicalDeviceSurfacePresentModes2EXT,                        "vkGetPhysicalDeviceSurfacePresentModes2EXT");
-	set_proc_address(&CreateMetalSurfaceEXT,                                           "vkCreateMetalSurfaceEXT");
-	set_proc_address(&CreateMacOSSurfaceMVK,                                           "vkCreateMacOSSurfaceMVK");
-	set_proc_address(&CreateIOSSurfaceMVK,                                             "vkCreateIOSSurfaceMVK");
+	set_proc_address(&DestroyInstance,                                                 "vkDestroyInstance")
+	set_proc_address(&EnumeratePhysicalDevices,                                        "vkEnumeratePhysicalDevices")
+	set_proc_address(&GetPhysicalDeviceFeatures,                                       "vkGetPhysicalDeviceFeatures")
+	set_proc_address(&GetPhysicalDeviceFormatProperties,                               "vkGetPhysicalDeviceFormatProperties")
+	set_proc_address(&GetPhysicalDeviceImageFormatProperties,                          "vkGetPhysicalDeviceImageFormatProperties")
+	set_proc_address(&GetPhysicalDeviceProperties,                                     "vkGetPhysicalDeviceProperties")
+	set_proc_address(&GetPhysicalDeviceQueueFamilyProperties,                          "vkGetPhysicalDeviceQueueFamilyProperties")
+	set_proc_address(&GetPhysicalDeviceMemoryProperties,                               "vkGetPhysicalDeviceMemoryProperties")
+	set_proc_address(&GetInstanceProcAddr,                                             "vkGetInstanceProcAddr")
+	set_proc_address(&CreateDevice,                                                    "vkCreateDevice")
+	set_proc_address(&EnumerateDeviceExtensionProperties,                              "vkEnumerateDeviceExtensionProperties")
+	set_proc_address(&EnumerateDeviceLayerProperties,                                  "vkEnumerateDeviceLayerProperties")
+	set_proc_address(&GetPhysicalDeviceSparseImageFormatProperties,                    "vkGetPhysicalDeviceSparseImageFormatProperties")
+	set_proc_address(&EnumeratePhysicalDeviceGroups,                                   "vkEnumeratePhysicalDeviceGroups")
+	set_proc_address(&GetPhysicalDeviceFeatures2,                                      "vkGetPhysicalDeviceFeatures2")
+	set_proc_address(&GetPhysicalDeviceProperties2,                                    "vkGetPhysicalDeviceProperties2")
+	set_proc_address(&GetPhysicalDeviceFormatProperties2,                              "vkGetPhysicalDeviceFormatProperties2")
+	set_proc_address(&GetPhysicalDeviceImageFormatProperties2,                         "vkGetPhysicalDeviceImageFormatProperties2")
+	set_proc_address(&GetPhysicalDeviceQueueFamilyProperties2,                         "vkGetPhysicalDeviceQueueFamilyProperties2")
+	set_proc_address(&GetPhysicalDeviceMemoryProperties2,                              "vkGetPhysicalDeviceMemoryProperties2")
+	set_proc_address(&GetPhysicalDeviceSparseImageFormatProperties2,                   "vkGetPhysicalDeviceSparseImageFormatProperties2")
+	set_proc_address(&GetPhysicalDeviceExternalBufferProperties,                       "vkGetPhysicalDeviceExternalBufferProperties")
+	set_proc_address(&GetPhysicalDeviceExternalFenceProperties,                        "vkGetPhysicalDeviceExternalFenceProperties")
+	set_proc_address(&GetPhysicalDeviceExternalSemaphoreProperties,                    "vkGetPhysicalDeviceExternalSemaphoreProperties")
+	set_proc_address(&DestroySurfaceKHR,                                               "vkDestroySurfaceKHR")
+	set_proc_address(&GetPhysicalDeviceSurfaceSupportKHR,                              "vkGetPhysicalDeviceSurfaceSupportKHR")
+	set_proc_address(&GetPhysicalDeviceSurfaceCapabilitiesKHR,                         "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")
+	set_proc_address(&GetPhysicalDeviceSurfaceFormatsKHR,                              "vkGetPhysicalDeviceSurfaceFormatsKHR")
+	set_proc_address(&GetPhysicalDeviceSurfacePresentModesKHR,                         "vkGetPhysicalDeviceSurfacePresentModesKHR")
+	set_proc_address(&GetPhysicalDevicePresentRectanglesKHR,                           "vkGetPhysicalDevicePresentRectanglesKHR")
+	set_proc_address(&GetPhysicalDeviceDisplayPropertiesKHR,                           "vkGetPhysicalDeviceDisplayPropertiesKHR")
+	set_proc_address(&GetPhysicalDeviceDisplayPlanePropertiesKHR,                      "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")
+	set_proc_address(&GetDisplayPlaneSupportedDisplaysKHR,                             "vkGetDisplayPlaneSupportedDisplaysKHR")
+	set_proc_address(&GetDisplayModePropertiesKHR,                                     "vkGetDisplayModePropertiesKHR")
+	set_proc_address(&CreateDisplayModeKHR,                                            "vkCreateDisplayModeKHR")
+	set_proc_address(&GetDisplayPlaneCapabilitiesKHR,                                  "vkGetDisplayPlaneCapabilitiesKHR")
+	set_proc_address(&CreateDisplayPlaneSurfaceKHR,                                    "vkCreateDisplayPlaneSurfaceKHR")
+	set_proc_address(&GetPhysicalDeviceFeatures2KHR,                                   "vkGetPhysicalDeviceFeatures2KHR")
+	set_proc_address(&GetPhysicalDeviceProperties2KHR,                                 "vkGetPhysicalDeviceProperties2KHR")
+	set_proc_address(&GetPhysicalDeviceFormatProperties2KHR,                           "vkGetPhysicalDeviceFormatProperties2KHR")
+	set_proc_address(&GetPhysicalDeviceImageFormatProperties2KHR,                      "vkGetPhysicalDeviceImageFormatProperties2KHR")
+	set_proc_address(&GetPhysicalDeviceQueueFamilyProperties2KHR,                      "vkGetPhysicalDeviceQueueFamilyProperties2KHR")
+	set_proc_address(&GetPhysicalDeviceMemoryProperties2KHR,                           "vkGetPhysicalDeviceMemoryProperties2KHR")
+	set_proc_address(&GetPhysicalDeviceSparseImageFormatProperties2KHR,                "vkGetPhysicalDeviceSparseImageFormatProperties2KHR")
+	set_proc_address(&EnumeratePhysicalDeviceGroupsKHR,                                "vkEnumeratePhysicalDeviceGroupsKHR")
+	set_proc_address(&GetPhysicalDeviceExternalBufferPropertiesKHR,                    "vkGetPhysicalDeviceExternalBufferPropertiesKHR")
+	set_proc_address(&GetPhysicalDeviceExternalSemaphorePropertiesKHR,                 "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR")
+	set_proc_address(&GetPhysicalDeviceExternalFencePropertiesKHR,                     "vkGetPhysicalDeviceExternalFencePropertiesKHR")
+	set_proc_address(&EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,   "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")
+	set_proc_address(&GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,           "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")
+	set_proc_address(&GetPhysicalDeviceSurfaceCapabilities2KHR,                        "vkGetPhysicalDeviceSurfaceCapabilities2KHR")
+	set_proc_address(&GetPhysicalDeviceSurfaceFormats2KHR,                             "vkGetPhysicalDeviceSurfaceFormats2KHR")
+	set_proc_address(&GetPhysicalDeviceDisplayProperties2KHR,                          "vkGetPhysicalDeviceDisplayProperties2KHR")
+	set_proc_address(&GetPhysicalDeviceDisplayPlaneProperties2KHR,                     "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")
+	set_proc_address(&GetDisplayModeProperties2KHR,                                    "vkGetDisplayModeProperties2KHR")
+	set_proc_address(&GetDisplayPlaneCapabilities2KHR,                                 "vkGetDisplayPlaneCapabilities2KHR")
+	set_proc_address(&GetPhysicalDeviceFragmentShadingRatesKHR,                        "vkGetPhysicalDeviceFragmentShadingRatesKHR")
+	set_proc_address(&CreateDebugReportCallbackEXT,                                    "vkCreateDebugReportCallbackEXT")
+	set_proc_address(&DestroyDebugReportCallbackEXT,                                   "vkDestroyDebugReportCallbackEXT")
+	set_proc_address(&DebugReportMessageEXT,                                           "vkDebugReportMessageEXT")
+	set_proc_address(&GetPhysicalDeviceExternalImageFormatPropertiesNV,                "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")
+	set_proc_address(&ReleaseDisplayEXT,                                               "vkReleaseDisplayEXT")
+	set_proc_address(&GetPhysicalDeviceSurfaceCapabilities2EXT,                        "vkGetPhysicalDeviceSurfaceCapabilities2EXT")
+	set_proc_address(&CreateDebugUtilsMessengerEXT,                                    "vkCreateDebugUtilsMessengerEXT")
+	set_proc_address(&DestroyDebugUtilsMessengerEXT,                                   "vkDestroyDebugUtilsMessengerEXT")
+	set_proc_address(&SubmitDebugUtilsMessageEXT,                                      "vkSubmitDebugUtilsMessageEXT")
+	set_proc_address(&GetPhysicalDeviceMultisamplePropertiesEXT,                       "vkGetPhysicalDeviceMultisamplePropertiesEXT")
+	set_proc_address(&GetPhysicalDeviceCalibrateableTimeDomainsEXT,                    "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT")
+	set_proc_address(&GetPhysicalDeviceToolPropertiesEXT,                              "vkGetPhysicalDeviceToolPropertiesEXT")
+	set_proc_address(&GetPhysicalDeviceCooperativeMatrixPropertiesNV,                  "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")
+	set_proc_address(&GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")
+	set_proc_address(&CreateHeadlessSurfaceEXT,                                        "vkCreateHeadlessSurfaceEXT")
+	set_proc_address(&AcquireDrmDisplayEXT,                                            "vkAcquireDrmDisplayEXT")
+	set_proc_address(&GetDrmDisplayEXT,                                                "vkGetDrmDisplayEXT")
+	set_proc_address(&AcquireWinrtDisplayNV,                                           "vkAcquireWinrtDisplayNV")
+	set_proc_address(&GetWinrtDisplayNV,                                               "vkGetWinrtDisplayNV")
+	set_proc_address(&CreateWin32SurfaceKHR,                                           "vkCreateWin32SurfaceKHR")
+	set_proc_address(&GetPhysicalDeviceWin32PresentationSupportKHR,                    "vkGetPhysicalDeviceWin32PresentationSupportKHR")
+	set_proc_address(&GetPhysicalDeviceSurfacePresentModes2EXT,                        "vkGetPhysicalDeviceSurfacePresentModes2EXT")
+	set_proc_address(&CreateMetalSurfaceEXT,                                           "vkCreateMetalSurfaceEXT")
+	set_proc_address(&CreateMacOSSurfaceMVK,                                           "vkCreateMacOSSurfaceMVK")
+	set_proc_address(&CreateIOSSurfaceMVK,                                             "vkCreateIOSSurfaceMVK")
 
 	// Device Procedures
-	set_proc_address(&GetDeviceProcAddr,                               "vkGetDeviceProcAddr");
-	set_proc_address(&DestroyDevice,                                   "vkDestroyDevice");
-	set_proc_address(&GetDeviceQueue,                                  "vkGetDeviceQueue");
-	set_proc_address(&QueueSubmit,                                     "vkQueueSubmit");
-	set_proc_address(&QueueWaitIdle,                                   "vkQueueWaitIdle");
-	set_proc_address(&DeviceWaitIdle,                                  "vkDeviceWaitIdle");
-	set_proc_address(&AllocateMemory,                                  "vkAllocateMemory");
-	set_proc_address(&FreeMemory,                                      "vkFreeMemory");
-	set_proc_address(&MapMemory,                                       "vkMapMemory");
-	set_proc_address(&UnmapMemory,                                     "vkUnmapMemory");
-	set_proc_address(&FlushMappedMemoryRanges,                         "vkFlushMappedMemoryRanges");
-	set_proc_address(&InvalidateMappedMemoryRanges,                    "vkInvalidateMappedMemoryRanges");
-	set_proc_address(&GetDeviceMemoryCommitment,                       "vkGetDeviceMemoryCommitment");
-	set_proc_address(&BindBufferMemory,                                "vkBindBufferMemory");
-	set_proc_address(&BindImageMemory,                                 "vkBindImageMemory");
-	set_proc_address(&GetBufferMemoryRequirements,                     "vkGetBufferMemoryRequirements");
-	set_proc_address(&GetImageMemoryRequirements,                      "vkGetImageMemoryRequirements");
-	set_proc_address(&GetImageSparseMemoryRequirements,                "vkGetImageSparseMemoryRequirements");
-	set_proc_address(&QueueBindSparse,                                 "vkQueueBindSparse");
-	set_proc_address(&CreateFence,                                     "vkCreateFence");
-	set_proc_address(&DestroyFence,                                    "vkDestroyFence");
-	set_proc_address(&ResetFences,                                     "vkResetFences");
-	set_proc_address(&GetFenceStatus,                                  "vkGetFenceStatus");
-	set_proc_address(&WaitForFences,                                   "vkWaitForFences");
-	set_proc_address(&CreateSemaphore,                                 "vkCreateSemaphore");
-	set_proc_address(&DestroySemaphore,                                "vkDestroySemaphore");
-	set_proc_address(&CreateEvent,                                     "vkCreateEvent");
-	set_proc_address(&DestroyEvent,                                    "vkDestroyEvent");
-	set_proc_address(&GetEventStatus,                                  "vkGetEventStatus");
-	set_proc_address(&SetEvent,                                        "vkSetEvent");
-	set_proc_address(&ResetEvent,                                      "vkResetEvent");
-	set_proc_address(&CreateQueryPool,                                 "vkCreateQueryPool");
-	set_proc_address(&DestroyQueryPool,                                "vkDestroyQueryPool");
-	set_proc_address(&GetQueryPoolResults,                             "vkGetQueryPoolResults");
-	set_proc_address(&CreateBuffer,                                    "vkCreateBuffer");
-	set_proc_address(&DestroyBuffer,                                   "vkDestroyBuffer");
-	set_proc_address(&CreateBufferView,                                "vkCreateBufferView");
-	set_proc_address(&DestroyBufferView,                               "vkDestroyBufferView");
-	set_proc_address(&CreateImage,                                     "vkCreateImage");
-	set_proc_address(&DestroyImage,                                    "vkDestroyImage");
-	set_proc_address(&GetImageSubresourceLayout,                       "vkGetImageSubresourceLayout");
-	set_proc_address(&CreateImageView,                                 "vkCreateImageView");
-	set_proc_address(&DestroyImageView,                                "vkDestroyImageView");
-	set_proc_address(&CreateShaderModule,                              "vkCreateShaderModule");
-	set_proc_address(&DestroyShaderModule,                             "vkDestroyShaderModule");
-	set_proc_address(&CreatePipelineCache,                             "vkCreatePipelineCache");
-	set_proc_address(&DestroyPipelineCache,                            "vkDestroyPipelineCache");
-	set_proc_address(&GetPipelineCacheData,                            "vkGetPipelineCacheData");
-	set_proc_address(&MergePipelineCaches,                             "vkMergePipelineCaches");
-	set_proc_address(&CreateGraphicsPipelines,                         "vkCreateGraphicsPipelines");
-	set_proc_address(&CreateComputePipelines,                          "vkCreateComputePipelines");
-	set_proc_address(&DestroyPipeline,                                 "vkDestroyPipeline");
-	set_proc_address(&CreatePipelineLayout,                            "vkCreatePipelineLayout");
-	set_proc_address(&DestroyPipelineLayout,                           "vkDestroyPipelineLayout");
-	set_proc_address(&CreateSampler,                                   "vkCreateSampler");
-	set_proc_address(&DestroySampler,                                  "vkDestroySampler");
-	set_proc_address(&CreateDescriptorSetLayout,                       "vkCreateDescriptorSetLayout");
-	set_proc_address(&DestroyDescriptorSetLayout,                      "vkDestroyDescriptorSetLayout");
-	set_proc_address(&CreateDescriptorPool,                            "vkCreateDescriptorPool");
-	set_proc_address(&DestroyDescriptorPool,                           "vkDestroyDescriptorPool");
-	set_proc_address(&ResetDescriptorPool,                             "vkResetDescriptorPool");
-	set_proc_address(&AllocateDescriptorSets,                          "vkAllocateDescriptorSets");
-	set_proc_address(&FreeDescriptorSets,                              "vkFreeDescriptorSets");
-	set_proc_address(&UpdateDescriptorSets,                            "vkUpdateDescriptorSets");
-	set_proc_address(&CreateFramebuffer,                               "vkCreateFramebuffer");
-	set_proc_address(&DestroyFramebuffer,                              "vkDestroyFramebuffer");
-	set_proc_address(&CreateRenderPass,                                "vkCreateRenderPass");
-	set_proc_address(&DestroyRenderPass,                               "vkDestroyRenderPass");
-	set_proc_address(&GetRenderAreaGranularity,                        "vkGetRenderAreaGranularity");
-	set_proc_address(&CreateCommandPool,                               "vkCreateCommandPool");
-	set_proc_address(&DestroyCommandPool,                              "vkDestroyCommandPool");
-	set_proc_address(&ResetCommandPool,                                "vkResetCommandPool");
-	set_proc_address(&AllocateCommandBuffers,                          "vkAllocateCommandBuffers");
-	set_proc_address(&FreeCommandBuffers,                              "vkFreeCommandBuffers");
-	set_proc_address(&BeginCommandBuffer,                              "vkBeginCommandBuffer");
-	set_proc_address(&EndCommandBuffer,                                "vkEndCommandBuffer");
-	set_proc_address(&ResetCommandBuffer,                              "vkResetCommandBuffer");
-	set_proc_address(&CmdBindPipeline,                                 "vkCmdBindPipeline");
-	set_proc_address(&CmdSetViewport,                                  "vkCmdSetViewport");
-	set_proc_address(&CmdSetScissor,                                   "vkCmdSetScissor");
-	set_proc_address(&CmdSetLineWidth,                                 "vkCmdSetLineWidth");
-	set_proc_address(&CmdSetDepthBias,                                 "vkCmdSetDepthBias");
-	set_proc_address(&CmdSetBlendConstants,                            "vkCmdSetBlendConstants");
-	set_proc_address(&CmdSetDepthBounds,                               "vkCmdSetDepthBounds");
-	set_proc_address(&CmdSetStencilCompareMask,                        "vkCmdSetStencilCompareMask");
-	set_proc_address(&CmdSetStencilWriteMask,                          "vkCmdSetStencilWriteMask");
-	set_proc_address(&CmdSetStencilReference,                          "vkCmdSetStencilReference");
-	set_proc_address(&CmdBindDescriptorSets,                           "vkCmdBindDescriptorSets");
-	set_proc_address(&CmdBindIndexBuffer,                              "vkCmdBindIndexBuffer");
-	set_proc_address(&CmdBindVertexBuffers,                            "vkCmdBindVertexBuffers");
-	set_proc_address(&CmdDraw,                                         "vkCmdDraw");
-	set_proc_address(&CmdDrawIndexed,                                  "vkCmdDrawIndexed");
-	set_proc_address(&CmdDrawIndirect,                                 "vkCmdDrawIndirect");
-	set_proc_address(&CmdDrawIndexedIndirect,                          "vkCmdDrawIndexedIndirect");
-	set_proc_address(&CmdDispatch,                                     "vkCmdDispatch");
-	set_proc_address(&CmdDispatchIndirect,                             "vkCmdDispatchIndirect");
-	set_proc_address(&CmdCopyBuffer,                                   "vkCmdCopyBuffer");
-	set_proc_address(&CmdCopyImage,                                    "vkCmdCopyImage");
-	set_proc_address(&CmdBlitImage,                                    "vkCmdBlitImage");
-	set_proc_address(&CmdCopyBufferToImage,                            "vkCmdCopyBufferToImage");
-	set_proc_address(&CmdCopyImageToBuffer,                            "vkCmdCopyImageToBuffer");
-	set_proc_address(&CmdUpdateBuffer,                                 "vkCmdUpdateBuffer");
-	set_proc_address(&CmdFillBuffer,                                   "vkCmdFillBuffer");
-	set_proc_address(&CmdClearColorImage,                              "vkCmdClearColorImage");
-	set_proc_address(&CmdClearDepthStencilImage,                       "vkCmdClearDepthStencilImage");
-	set_proc_address(&CmdClearAttachments,                             "vkCmdClearAttachments");
-	set_proc_address(&CmdResolveImage,                                 "vkCmdResolveImage");
-	set_proc_address(&CmdSetEvent,                                     "vkCmdSetEvent");
-	set_proc_address(&CmdResetEvent,                                   "vkCmdResetEvent");
-	set_proc_address(&CmdWaitEvents,                                   "vkCmdWaitEvents");
-	set_proc_address(&CmdPipelineBarrier,                              "vkCmdPipelineBarrier");
-	set_proc_address(&CmdBeginQuery,                                   "vkCmdBeginQuery");
-	set_proc_address(&CmdEndQuery,                                     "vkCmdEndQuery");
-	set_proc_address(&CmdResetQueryPool,                               "vkCmdResetQueryPool");
-	set_proc_address(&CmdWriteTimestamp,                               "vkCmdWriteTimestamp");
-	set_proc_address(&CmdCopyQueryPoolResults,                         "vkCmdCopyQueryPoolResults");
-	set_proc_address(&CmdPushConstants,                                "vkCmdPushConstants");
-	set_proc_address(&CmdBeginRenderPass,                              "vkCmdBeginRenderPass");
-	set_proc_address(&CmdNextSubpass,                                  "vkCmdNextSubpass");
-	set_proc_address(&CmdEndRenderPass,                                "vkCmdEndRenderPass");
-	set_proc_address(&CmdExecuteCommands,                              "vkCmdExecuteCommands");
-	set_proc_address(&BindBufferMemory2,                               "vkBindBufferMemory2");
-	set_proc_address(&BindImageMemory2,                                "vkBindImageMemory2");
-	set_proc_address(&GetDeviceGroupPeerMemoryFeatures,                "vkGetDeviceGroupPeerMemoryFeatures");
-	set_proc_address(&CmdSetDeviceMask,                                "vkCmdSetDeviceMask");
-	set_proc_address(&CmdDispatchBase,                                 "vkCmdDispatchBase");
-	set_proc_address(&GetImageMemoryRequirements2,                     "vkGetImageMemoryRequirements2");
-	set_proc_address(&GetBufferMemoryRequirements2,                    "vkGetBufferMemoryRequirements2");
-	set_proc_address(&GetImageSparseMemoryRequirements2,               "vkGetImageSparseMemoryRequirements2");
-	set_proc_address(&TrimCommandPool,                                 "vkTrimCommandPool");
-	set_proc_address(&GetDeviceQueue2,                                 "vkGetDeviceQueue2");
-	set_proc_address(&CreateSamplerYcbcrConversion,                    "vkCreateSamplerYcbcrConversion");
-	set_proc_address(&DestroySamplerYcbcrConversion,                   "vkDestroySamplerYcbcrConversion");
-	set_proc_address(&CreateDescriptorUpdateTemplate,                  "vkCreateDescriptorUpdateTemplate");
-	set_proc_address(&DestroyDescriptorUpdateTemplate,                 "vkDestroyDescriptorUpdateTemplate");
-	set_proc_address(&UpdateDescriptorSetWithTemplate,                 "vkUpdateDescriptorSetWithTemplate");
-	set_proc_address(&GetDescriptorSetLayoutSupport,                   "vkGetDescriptorSetLayoutSupport");
-	set_proc_address(&CmdDrawIndirectCount,                            "vkCmdDrawIndirectCount");
-	set_proc_address(&CmdDrawIndexedIndirectCount,                     "vkCmdDrawIndexedIndirectCount");
-	set_proc_address(&CreateRenderPass2,                               "vkCreateRenderPass2");
-	set_proc_address(&CmdBeginRenderPass2,                             "vkCmdBeginRenderPass2");
-	set_proc_address(&CmdNextSubpass2,                                 "vkCmdNextSubpass2");
-	set_proc_address(&CmdEndRenderPass2,                               "vkCmdEndRenderPass2");
-	set_proc_address(&ResetQueryPool,                                  "vkResetQueryPool");
-	set_proc_address(&GetSemaphoreCounterValue,                        "vkGetSemaphoreCounterValue");
-	set_proc_address(&WaitSemaphores,                                  "vkWaitSemaphores");
-	set_proc_address(&SignalSemaphore,                                 "vkSignalSemaphore");
-	set_proc_address(&GetBufferDeviceAddress,                          "vkGetBufferDeviceAddress");
-	set_proc_address(&GetBufferOpaqueCaptureAddress,                   "vkGetBufferOpaqueCaptureAddress");
-	set_proc_address(&GetDeviceMemoryOpaqueCaptureAddress,             "vkGetDeviceMemoryOpaqueCaptureAddress");
-	set_proc_address(&CreateSwapchainKHR,                              "vkCreateSwapchainKHR");
-	set_proc_address(&DestroySwapchainKHR,                             "vkDestroySwapchainKHR");
-	set_proc_address(&GetSwapchainImagesKHR,                           "vkGetSwapchainImagesKHR");
-	set_proc_address(&AcquireNextImageKHR,                             "vkAcquireNextImageKHR");
-	set_proc_address(&QueuePresentKHR,                                 "vkQueuePresentKHR");
-	set_proc_address(&GetDeviceGroupPresentCapabilitiesKHR,            "vkGetDeviceGroupPresentCapabilitiesKHR");
-	set_proc_address(&GetDeviceGroupSurfacePresentModesKHR,            "vkGetDeviceGroupSurfacePresentModesKHR");
-	set_proc_address(&AcquireNextImage2KHR,                            "vkAcquireNextImage2KHR");
-	set_proc_address(&CreateSharedSwapchainsKHR,                       "vkCreateSharedSwapchainsKHR");
-	set_proc_address(&GetDeviceGroupPeerMemoryFeaturesKHR,             "vkGetDeviceGroupPeerMemoryFeaturesKHR");
-	set_proc_address(&CmdSetDeviceMaskKHR,                             "vkCmdSetDeviceMaskKHR");
-	set_proc_address(&CmdDispatchBaseKHR,                              "vkCmdDispatchBaseKHR");
-	set_proc_address(&TrimCommandPoolKHR,                              "vkTrimCommandPoolKHR");
-	set_proc_address(&GetMemoryFdKHR,                                  "vkGetMemoryFdKHR");
-	set_proc_address(&GetMemoryFdPropertiesKHR,                        "vkGetMemoryFdPropertiesKHR");
-	set_proc_address(&ImportSemaphoreFdKHR,                            "vkImportSemaphoreFdKHR");
-	set_proc_address(&GetSemaphoreFdKHR,                               "vkGetSemaphoreFdKHR");
-	set_proc_address(&CmdPushDescriptorSetKHR,                         "vkCmdPushDescriptorSetKHR");
-	set_proc_address(&CmdPushDescriptorSetWithTemplateKHR,             "vkCmdPushDescriptorSetWithTemplateKHR");
-	set_proc_address(&CreateDescriptorUpdateTemplateKHR,               "vkCreateDescriptorUpdateTemplateKHR");
-	set_proc_address(&DestroyDescriptorUpdateTemplateKHR,              "vkDestroyDescriptorUpdateTemplateKHR");
-	set_proc_address(&UpdateDescriptorSetWithTemplateKHR,              "vkUpdateDescriptorSetWithTemplateKHR");
-	set_proc_address(&CreateRenderPass2KHR,                            "vkCreateRenderPass2KHR");
-	set_proc_address(&CmdBeginRenderPass2KHR,                          "vkCmdBeginRenderPass2KHR");
-	set_proc_address(&CmdNextSubpass2KHR,                              "vkCmdNextSubpass2KHR");
-	set_proc_address(&CmdEndRenderPass2KHR,                            "vkCmdEndRenderPass2KHR");
-	set_proc_address(&GetSwapchainStatusKHR,                           "vkGetSwapchainStatusKHR");
-	set_proc_address(&ImportFenceFdKHR,                                "vkImportFenceFdKHR");
-	set_proc_address(&GetFenceFdKHR,                                   "vkGetFenceFdKHR");
-	set_proc_address(&AcquireProfilingLockKHR,                         "vkAcquireProfilingLockKHR");
-	set_proc_address(&ReleaseProfilingLockKHR,                         "vkReleaseProfilingLockKHR");
-	set_proc_address(&GetImageMemoryRequirements2KHR,                  "vkGetImageMemoryRequirements2KHR");
-	set_proc_address(&GetBufferMemoryRequirements2KHR,                 "vkGetBufferMemoryRequirements2KHR");
-	set_proc_address(&GetImageSparseMemoryRequirements2KHR,            "vkGetImageSparseMemoryRequirements2KHR");
-	set_proc_address(&CreateSamplerYcbcrConversionKHR,                 "vkCreateSamplerYcbcrConversionKHR");
-	set_proc_address(&DestroySamplerYcbcrConversionKHR,                "vkDestroySamplerYcbcrConversionKHR");
-	set_proc_address(&BindBufferMemory2KHR,                            "vkBindBufferMemory2KHR");
-	set_proc_address(&BindImageMemory2KHR,                             "vkBindImageMemory2KHR");
-	set_proc_address(&GetDescriptorSetLayoutSupportKHR,                "vkGetDescriptorSetLayoutSupportKHR");
-	set_proc_address(&CmdDrawIndirectCountKHR,                         "vkCmdDrawIndirectCountKHR");
-	set_proc_address(&CmdDrawIndexedIndirectCountKHR,                  "vkCmdDrawIndexedIndirectCountKHR");
-	set_proc_address(&GetSemaphoreCounterValueKHR,                     "vkGetSemaphoreCounterValueKHR");
-	set_proc_address(&WaitSemaphoresKHR,                               "vkWaitSemaphoresKHR");
-	set_proc_address(&SignalSemaphoreKHR,                              "vkSignalSemaphoreKHR");
-	set_proc_address(&CmdSetFragmentShadingRateKHR,                    "vkCmdSetFragmentShadingRateKHR");
-	set_proc_address(&WaitForPresentKHR,                               "vkWaitForPresentKHR");
-	set_proc_address(&GetBufferDeviceAddressKHR,                       "vkGetBufferDeviceAddressKHR");
-	set_proc_address(&GetBufferOpaqueCaptureAddressKHR,                "vkGetBufferOpaqueCaptureAddressKHR");
-	set_proc_address(&GetDeviceMemoryOpaqueCaptureAddressKHR,          "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
-	set_proc_address(&CreateDeferredOperationKHR,                      "vkCreateDeferredOperationKHR");
-	set_proc_address(&DestroyDeferredOperationKHR,                     "vkDestroyDeferredOperationKHR");
-	set_proc_address(&GetDeferredOperationMaxConcurrencyKHR,           "vkGetDeferredOperationMaxConcurrencyKHR");
-	set_proc_address(&GetDeferredOperationResultKHR,                   "vkGetDeferredOperationResultKHR");
-	set_proc_address(&DeferredOperationJoinKHR,                        "vkDeferredOperationJoinKHR");
-	set_proc_address(&GetPipelineExecutablePropertiesKHR,              "vkGetPipelineExecutablePropertiesKHR");
-	set_proc_address(&GetPipelineExecutableStatisticsKHR,              "vkGetPipelineExecutableStatisticsKHR");
-	set_proc_address(&GetPipelineExecutableInternalRepresentationsKHR, "vkGetPipelineExecutableInternalRepresentationsKHR");
-	set_proc_address(&CmdSetEvent2KHR,                                 "vkCmdSetEvent2KHR");
-	set_proc_address(&CmdResetEvent2KHR,                               "vkCmdResetEvent2KHR");
-	set_proc_address(&CmdWaitEvents2KHR,                               "vkCmdWaitEvents2KHR");
-	set_proc_address(&CmdPipelineBarrier2KHR,                          "vkCmdPipelineBarrier2KHR");
-	set_proc_address(&CmdWriteTimestamp2KHR,                           "vkCmdWriteTimestamp2KHR");
-	set_proc_address(&QueueSubmit2KHR,                                 "vkQueueSubmit2KHR");
-	set_proc_address(&CmdWriteBufferMarker2AMD,                        "vkCmdWriteBufferMarker2AMD");
-	set_proc_address(&GetQueueCheckpointData2NV,                       "vkGetQueueCheckpointData2NV");
-	set_proc_address(&CmdCopyBuffer2KHR,                               "vkCmdCopyBuffer2KHR");
-	set_proc_address(&CmdCopyImage2KHR,                                "vkCmdCopyImage2KHR");
-	set_proc_address(&CmdCopyBufferToImage2KHR,                        "vkCmdCopyBufferToImage2KHR");
-	set_proc_address(&CmdCopyImageToBuffer2KHR,                        "vkCmdCopyImageToBuffer2KHR");
-	set_proc_address(&CmdBlitImage2KHR,                                "vkCmdBlitImage2KHR");
-	set_proc_address(&CmdResolveImage2KHR,                             "vkCmdResolveImage2KHR");
-	set_proc_address(&DebugMarkerSetObjectTagEXT,                      "vkDebugMarkerSetObjectTagEXT");
-	set_proc_address(&DebugMarkerSetObjectNameEXT,                     "vkDebugMarkerSetObjectNameEXT");
-	set_proc_address(&CmdDebugMarkerBeginEXT,                          "vkCmdDebugMarkerBeginEXT");
-	set_proc_address(&CmdDebugMarkerEndEXT,                            "vkCmdDebugMarkerEndEXT");
-	set_proc_address(&CmdDebugMarkerInsertEXT,                         "vkCmdDebugMarkerInsertEXT");
-	set_proc_address(&CmdBindTransformFeedbackBuffersEXT,              "vkCmdBindTransformFeedbackBuffersEXT");
-	set_proc_address(&CmdBeginTransformFeedbackEXT,                    "vkCmdBeginTransformFeedbackEXT");
-	set_proc_address(&CmdEndTransformFeedbackEXT,                      "vkCmdEndTransformFeedbackEXT");
-	set_proc_address(&CmdBeginQueryIndexedEXT,                         "vkCmdBeginQueryIndexedEXT");
-	set_proc_address(&CmdEndQueryIndexedEXT,                           "vkCmdEndQueryIndexedEXT");
-	set_proc_address(&CmdDrawIndirectByteCountEXT,                     "vkCmdDrawIndirectByteCountEXT");
-	set_proc_address(&CreateCuModuleNVX,                               "vkCreateCuModuleNVX");
-	set_proc_address(&CreateCuFunctionNVX,                             "vkCreateCuFunctionNVX");
-	set_proc_address(&DestroyCuModuleNVX,                              "vkDestroyCuModuleNVX");
-	set_proc_address(&DestroyCuFunctionNVX,                            "vkDestroyCuFunctionNVX");
-	set_proc_address(&CmdCuLaunchKernelNVX,                            "vkCmdCuLaunchKernelNVX");
-	set_proc_address(&GetImageViewHandleNVX,                           "vkGetImageViewHandleNVX");
-	set_proc_address(&GetImageViewAddressNVX,                          "vkGetImageViewAddressNVX");
-	set_proc_address(&CmdDrawIndirectCountAMD,                         "vkCmdDrawIndirectCountAMD");
-	set_proc_address(&CmdDrawIndexedIndirectCountAMD,                  "vkCmdDrawIndexedIndirectCountAMD");
-	set_proc_address(&GetShaderInfoAMD,                                "vkGetShaderInfoAMD");
-	set_proc_address(&CmdBeginConditionalRenderingEXT,                 "vkCmdBeginConditionalRenderingEXT");
-	set_proc_address(&CmdEndConditionalRenderingEXT,                   "vkCmdEndConditionalRenderingEXT");
-	set_proc_address(&CmdSetViewportWScalingNV,                        "vkCmdSetViewportWScalingNV");
-	set_proc_address(&DisplayPowerControlEXT,                          "vkDisplayPowerControlEXT");
-	set_proc_address(&RegisterDeviceEventEXT,                          "vkRegisterDeviceEventEXT");
-	set_proc_address(&RegisterDisplayEventEXT,                         "vkRegisterDisplayEventEXT");
-	set_proc_address(&GetSwapchainCounterEXT,                          "vkGetSwapchainCounterEXT");
-	set_proc_address(&GetRefreshCycleDurationGOOGLE,                   "vkGetRefreshCycleDurationGOOGLE");
-	set_proc_address(&GetPastPresentationTimingGOOGLE,                 "vkGetPastPresentationTimingGOOGLE");
-	set_proc_address(&CmdSetDiscardRectangleEXT,                       "vkCmdSetDiscardRectangleEXT");
-	set_proc_address(&SetHdrMetadataEXT,                               "vkSetHdrMetadataEXT");
-	set_proc_address(&SetDebugUtilsObjectNameEXT,                      "vkSetDebugUtilsObjectNameEXT");
-	set_proc_address(&SetDebugUtilsObjectTagEXT,                       "vkSetDebugUtilsObjectTagEXT");
-	set_proc_address(&QueueBeginDebugUtilsLabelEXT,                    "vkQueueBeginDebugUtilsLabelEXT");
-	set_proc_address(&QueueEndDebugUtilsLabelEXT,                      "vkQueueEndDebugUtilsLabelEXT");
-	set_proc_address(&QueueInsertDebugUtilsLabelEXT,                   "vkQueueInsertDebugUtilsLabelEXT");
-	set_proc_address(&CmdBeginDebugUtilsLabelEXT,                      "vkCmdBeginDebugUtilsLabelEXT");
-	set_proc_address(&CmdEndDebugUtilsLabelEXT,                        "vkCmdEndDebugUtilsLabelEXT");
-	set_proc_address(&CmdInsertDebugUtilsLabelEXT,                     "vkCmdInsertDebugUtilsLabelEXT");
-	set_proc_address(&CmdSetSampleLocationsEXT,                        "vkCmdSetSampleLocationsEXT");
-	set_proc_address(&GetImageDrmFormatModifierPropertiesEXT,          "vkGetImageDrmFormatModifierPropertiesEXT");
-	set_proc_address(&CreateValidationCacheEXT,                        "vkCreateValidationCacheEXT");
-	set_proc_address(&DestroyValidationCacheEXT,                       "vkDestroyValidationCacheEXT");
-	set_proc_address(&MergeValidationCachesEXT,                        "vkMergeValidationCachesEXT");
-	set_proc_address(&GetValidationCacheDataEXT,                       "vkGetValidationCacheDataEXT");
-	set_proc_address(&CmdBindShadingRateImageNV,                       "vkCmdBindShadingRateImageNV");
-	set_proc_address(&CmdSetViewportShadingRatePaletteNV,              "vkCmdSetViewportShadingRatePaletteNV");
-	set_proc_address(&CmdSetCoarseSampleOrderNV,                       "vkCmdSetCoarseSampleOrderNV");
-	set_proc_address(&CreateAccelerationStructureNV,                   "vkCreateAccelerationStructureNV");
-	set_proc_address(&DestroyAccelerationStructureNV,                  "vkDestroyAccelerationStructureNV");
-	set_proc_address(&GetAccelerationStructureMemoryRequirementsNV,    "vkGetAccelerationStructureMemoryRequirementsNV");
-	set_proc_address(&BindAccelerationStructureMemoryNV,               "vkBindAccelerationStructureMemoryNV");
-	set_proc_address(&CmdBuildAccelerationStructureNV,                 "vkCmdBuildAccelerationStructureNV");
-	set_proc_address(&CmdCopyAccelerationStructureNV,                  "vkCmdCopyAccelerationStructureNV");
-	set_proc_address(&CmdTraceRaysNV,                                  "vkCmdTraceRaysNV");
-	set_proc_address(&CreateRayTracingPipelinesNV,                     "vkCreateRayTracingPipelinesNV");
-	set_proc_address(&GetRayTracingShaderGroupHandlesKHR,              "vkGetRayTracingShaderGroupHandlesKHR");
-	set_proc_address(&GetRayTracingShaderGroupHandlesNV,               "vkGetRayTracingShaderGroupHandlesNV");
-	set_proc_address(&GetAccelerationStructureHandleNV,                "vkGetAccelerationStructureHandleNV");
-	set_proc_address(&CmdWriteAccelerationStructuresPropertiesNV,      "vkCmdWriteAccelerationStructuresPropertiesNV");
-	set_proc_address(&CompileDeferredNV,                               "vkCompileDeferredNV");
-	set_proc_address(&GetMemoryHostPointerPropertiesEXT,               "vkGetMemoryHostPointerPropertiesEXT");
-	set_proc_address(&CmdWriteBufferMarkerAMD,                         "vkCmdWriteBufferMarkerAMD");
-	set_proc_address(&GetCalibratedTimestampsEXT,                      "vkGetCalibratedTimestampsEXT");
-	set_proc_address(&CmdDrawMeshTasksNV,                              "vkCmdDrawMeshTasksNV");
-	set_proc_address(&CmdDrawMeshTasksIndirectNV,                      "vkCmdDrawMeshTasksIndirectNV");
-	set_proc_address(&CmdDrawMeshTasksIndirectCountNV,                 "vkCmdDrawMeshTasksIndirectCountNV");
-	set_proc_address(&CmdSetExclusiveScissorNV,                        "vkCmdSetExclusiveScissorNV");
-	set_proc_address(&CmdSetCheckpointNV,                              "vkCmdSetCheckpointNV");
-	set_proc_address(&GetQueueCheckpointDataNV,                        "vkGetQueueCheckpointDataNV");
-	set_proc_address(&InitializePerformanceApiINTEL,                   "vkInitializePerformanceApiINTEL");
-	set_proc_address(&UninitializePerformanceApiINTEL,                 "vkUninitializePerformanceApiINTEL");
-	set_proc_address(&CmdSetPerformanceMarkerINTEL,                    "vkCmdSetPerformanceMarkerINTEL");
-	set_proc_address(&CmdSetPerformanceStreamMarkerINTEL,              "vkCmdSetPerformanceStreamMarkerINTEL");
-	set_proc_address(&CmdSetPerformanceOverrideINTEL,                  "vkCmdSetPerformanceOverrideINTEL");
-	set_proc_address(&AcquirePerformanceConfigurationINTEL,            "vkAcquirePerformanceConfigurationINTEL");
-	set_proc_address(&ReleasePerformanceConfigurationINTEL,            "vkReleasePerformanceConfigurationINTEL");
-	set_proc_address(&QueueSetPerformanceConfigurationINTEL,           "vkQueueSetPerformanceConfigurationINTEL");
-	set_proc_address(&GetPerformanceParameterINTEL,                    "vkGetPerformanceParameterINTEL");
-	set_proc_address(&SetLocalDimmingAMD,                              "vkSetLocalDimmingAMD");
-	set_proc_address(&GetBufferDeviceAddressEXT,                       "vkGetBufferDeviceAddressEXT");
-	set_proc_address(&CmdSetLineStippleEXT,                            "vkCmdSetLineStippleEXT");
-	set_proc_address(&ResetQueryPoolEXT,                               "vkResetQueryPoolEXT");
-	set_proc_address(&CmdSetCullModeEXT,                               "vkCmdSetCullModeEXT");
-	set_proc_address(&CmdSetFrontFaceEXT,                              "vkCmdSetFrontFaceEXT");
-	set_proc_address(&CmdSetPrimitiveTopologyEXT,                      "vkCmdSetPrimitiveTopologyEXT");
-	set_proc_address(&CmdSetViewportWithCountEXT,                      "vkCmdSetViewportWithCountEXT");
-	set_proc_address(&CmdSetScissorWithCountEXT,                       "vkCmdSetScissorWithCountEXT");
-	set_proc_address(&CmdBindVertexBuffers2EXT,                        "vkCmdBindVertexBuffers2EXT");
-	set_proc_address(&CmdSetDepthTestEnableEXT,                        "vkCmdSetDepthTestEnableEXT");
-	set_proc_address(&CmdSetDepthWriteEnableEXT,                       "vkCmdSetDepthWriteEnableEXT");
-	set_proc_address(&CmdSetDepthCompareOpEXT,                         "vkCmdSetDepthCompareOpEXT");
-	set_proc_address(&CmdSetDepthBoundsTestEnableEXT,                  "vkCmdSetDepthBoundsTestEnableEXT");
-	set_proc_address(&CmdSetStencilTestEnableEXT,                      "vkCmdSetStencilTestEnableEXT");
-	set_proc_address(&CmdSetStencilOpEXT,                              "vkCmdSetStencilOpEXT");
-	set_proc_address(&GetGeneratedCommandsMemoryRequirementsNV,        "vkGetGeneratedCommandsMemoryRequirementsNV");
-	set_proc_address(&CmdPreprocessGeneratedCommandsNV,                "vkCmdPreprocessGeneratedCommandsNV");
-	set_proc_address(&CmdExecuteGeneratedCommandsNV,                   "vkCmdExecuteGeneratedCommandsNV");
-	set_proc_address(&CmdBindPipelineShaderGroupNV,                    "vkCmdBindPipelineShaderGroupNV");
-	set_proc_address(&CreateIndirectCommandsLayoutNV,                  "vkCreateIndirectCommandsLayoutNV");
-	set_proc_address(&DestroyIndirectCommandsLayoutNV,                 "vkDestroyIndirectCommandsLayoutNV");
-	set_proc_address(&CreatePrivateDataSlotEXT,                        "vkCreatePrivateDataSlotEXT");
-	set_proc_address(&DestroyPrivateDataSlotEXT,                       "vkDestroyPrivateDataSlotEXT");
-	set_proc_address(&SetPrivateDataEXT,                               "vkSetPrivateDataEXT");
-	set_proc_address(&GetPrivateDataEXT,                               "vkGetPrivateDataEXT");
-	set_proc_address(&CmdSetFragmentShadingRateEnumNV,                 "vkCmdSetFragmentShadingRateEnumNV");
-	set_proc_address(&CmdSetVertexInputEXT,                            "vkCmdSetVertexInputEXT");
-	set_proc_address(&GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,   "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
-	set_proc_address(&CmdSubpassShadingHUAWEI,                         "vkCmdSubpassShadingHUAWEI");
-	set_proc_address(&CmdBindInvocationMaskHUAWEI,                     "vkCmdBindInvocationMaskHUAWEI");
-	set_proc_address(&GetMemoryRemoteAddressNV,                        "vkGetMemoryRemoteAddressNV");
-	set_proc_address(&CmdSetPatchControlPointsEXT,                     "vkCmdSetPatchControlPointsEXT");
-	set_proc_address(&CmdSetRasterizerDiscardEnableEXT,                "vkCmdSetRasterizerDiscardEnableEXT");
-	set_proc_address(&CmdSetDepthBiasEnableEXT,                        "vkCmdSetDepthBiasEnableEXT");
-	set_proc_address(&CmdSetLogicOpEXT,                                "vkCmdSetLogicOpEXT");
-	set_proc_address(&CmdSetPrimitiveRestartEnableEXT,                 "vkCmdSetPrimitiveRestartEnableEXT");
-	set_proc_address(&CmdDrawMultiEXT,                                 "vkCmdDrawMultiEXT");
-	set_proc_address(&CmdDrawMultiIndexedEXT,                          "vkCmdDrawMultiIndexedEXT");
-	set_proc_address(&CreateAccelerationStructureKHR,                  "vkCreateAccelerationStructureKHR");
-	set_proc_address(&DestroyAccelerationStructureKHR,                 "vkDestroyAccelerationStructureKHR");
-	set_proc_address(&CmdBuildAccelerationStructuresKHR,               "vkCmdBuildAccelerationStructuresKHR");
-	set_proc_address(&CmdBuildAccelerationStructuresIndirectKHR,       "vkCmdBuildAccelerationStructuresIndirectKHR");
-	set_proc_address(&BuildAccelerationStructuresKHR,                  "vkBuildAccelerationStructuresKHR");
-	set_proc_address(&CopyAccelerationStructureKHR,                    "vkCopyAccelerationStructureKHR");
-	set_proc_address(&CopyAccelerationStructureToMemoryKHR,            "vkCopyAccelerationStructureToMemoryKHR");
-	set_proc_address(&CopyMemoryToAccelerationStructureKHR,            "vkCopyMemoryToAccelerationStructureKHR");
-	set_proc_address(&WriteAccelerationStructuresPropertiesKHR,        "vkWriteAccelerationStructuresPropertiesKHR");
-	set_proc_address(&CmdCopyAccelerationStructureKHR,                 "vkCmdCopyAccelerationStructureKHR");
-	set_proc_address(&CmdCopyAccelerationStructureToMemoryKHR,         "vkCmdCopyAccelerationStructureToMemoryKHR");
-	set_proc_address(&CmdCopyMemoryToAccelerationStructureKHR,         "vkCmdCopyMemoryToAccelerationStructureKHR");
-	set_proc_address(&GetAccelerationStructureDeviceAddressKHR,        "vkGetAccelerationStructureDeviceAddressKHR");
-	set_proc_address(&CmdWriteAccelerationStructuresPropertiesKHR,     "vkCmdWriteAccelerationStructuresPropertiesKHR");
-	set_proc_address(&GetDeviceAccelerationStructureCompatibilityKHR,  "vkGetDeviceAccelerationStructureCompatibilityKHR");
-	set_proc_address(&GetAccelerationStructureBuildSizesKHR,           "vkGetAccelerationStructureBuildSizesKHR");
-	set_proc_address(&CmdTraceRaysKHR,                                 "vkCmdTraceRaysKHR");
-	set_proc_address(&CreateRayTracingPipelinesKHR,                    "vkCreateRayTracingPipelinesKHR");
-	set_proc_address(&GetRayTracingCaptureReplayShaderGroupHandlesKHR, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
-	set_proc_address(&CmdTraceRaysIndirectKHR,                         "vkCmdTraceRaysIndirectKHR");
-	set_proc_address(&GetRayTracingShaderGroupStackSizeKHR,            "vkGetRayTracingShaderGroupStackSizeKHR");
-	set_proc_address(&CmdSetRayTracingPipelineStackSizeKHR,            "vkCmdSetRayTracingPipelineStackSizeKHR");
-	set_proc_address(&GetMemoryWin32HandleKHR,                         "vkGetMemoryWin32HandleKHR");
-	set_proc_address(&GetMemoryWin32HandlePropertiesKHR,               "vkGetMemoryWin32HandlePropertiesKHR");
-	set_proc_address(&ImportSemaphoreWin32HandleKHR,                   "vkImportSemaphoreWin32HandleKHR");
-	set_proc_address(&GetSemaphoreWin32HandleKHR,                      "vkGetSemaphoreWin32HandleKHR");
-	set_proc_address(&ImportFenceWin32HandleKHR,                       "vkImportFenceWin32HandleKHR");
-	set_proc_address(&GetFenceWin32HandleKHR,                          "vkGetFenceWin32HandleKHR");
-	set_proc_address(&GetMemoryWin32HandleNV,                          "vkGetMemoryWin32HandleNV");
-	set_proc_address(&AcquireFullScreenExclusiveModeEXT,               "vkAcquireFullScreenExclusiveModeEXT");
-	set_proc_address(&ReleaseFullScreenExclusiveModeEXT,               "vkReleaseFullScreenExclusiveModeEXT");
-	set_proc_address(&GetDeviceGroupSurfacePresentModes2EXT,           "vkGetDeviceGroupSurfacePresentModes2EXT");
+	set_proc_address(&GetDeviceProcAddr,                               "vkGetDeviceProcAddr")
+	set_proc_address(&DestroyDevice,                                   "vkDestroyDevice")
+	set_proc_address(&GetDeviceQueue,                                  "vkGetDeviceQueue")
+	set_proc_address(&QueueSubmit,                                     "vkQueueSubmit")
+	set_proc_address(&QueueWaitIdle,                                   "vkQueueWaitIdle")
+	set_proc_address(&DeviceWaitIdle,                                  "vkDeviceWaitIdle")
+	set_proc_address(&AllocateMemory,                                  "vkAllocateMemory")
+	set_proc_address(&FreeMemory,                                      "vkFreeMemory")
+	set_proc_address(&MapMemory,                                       "vkMapMemory")
+	set_proc_address(&UnmapMemory,                                     "vkUnmapMemory")
+	set_proc_address(&FlushMappedMemoryRanges,                         "vkFlushMappedMemoryRanges")
+	set_proc_address(&InvalidateMappedMemoryRanges,                    "vkInvalidateMappedMemoryRanges")
+	set_proc_address(&GetDeviceMemoryCommitment,                       "vkGetDeviceMemoryCommitment")
+	set_proc_address(&BindBufferMemory,                                "vkBindBufferMemory")
+	set_proc_address(&BindImageMemory,                                 "vkBindImageMemory")
+	set_proc_address(&GetBufferMemoryRequirements,                     "vkGetBufferMemoryRequirements")
+	set_proc_address(&GetImageMemoryRequirements,                      "vkGetImageMemoryRequirements")
+	set_proc_address(&GetImageSparseMemoryRequirements,                "vkGetImageSparseMemoryRequirements")
+	set_proc_address(&QueueBindSparse,                                 "vkQueueBindSparse")
+	set_proc_address(&CreateFence,                                     "vkCreateFence")
+	set_proc_address(&DestroyFence,                                    "vkDestroyFence")
+	set_proc_address(&ResetFences,                                     "vkResetFences")
+	set_proc_address(&GetFenceStatus,                                  "vkGetFenceStatus")
+	set_proc_address(&WaitForFences,                                   "vkWaitForFences")
+	set_proc_address(&CreateSemaphore,                                 "vkCreateSemaphore")
+	set_proc_address(&DestroySemaphore,                                "vkDestroySemaphore")
+	set_proc_address(&CreateEvent,                                     "vkCreateEvent")
+	set_proc_address(&DestroyEvent,                                    "vkDestroyEvent")
+	set_proc_address(&GetEventStatus,                                  "vkGetEventStatus")
+	set_proc_address(&SetEvent,                                        "vkSetEvent")
+	set_proc_address(&ResetEvent,                                      "vkResetEvent")
+	set_proc_address(&CreateQueryPool,                                 "vkCreateQueryPool")
+	set_proc_address(&DestroyQueryPool,                                "vkDestroyQueryPool")
+	set_proc_address(&GetQueryPoolResults,                             "vkGetQueryPoolResults")
+	set_proc_address(&CreateBuffer,                                    "vkCreateBuffer")
+	set_proc_address(&DestroyBuffer,                                   "vkDestroyBuffer")
+	set_proc_address(&CreateBufferView,                                "vkCreateBufferView")
+	set_proc_address(&DestroyBufferView,                               "vkDestroyBufferView")
+	set_proc_address(&CreateImage,                                     "vkCreateImage")
+	set_proc_address(&DestroyImage,                                    "vkDestroyImage")
+	set_proc_address(&GetImageSubresourceLayout,                       "vkGetImageSubresourceLayout")
+	set_proc_address(&CreateImageView,                                 "vkCreateImageView")
+	set_proc_address(&DestroyImageView,                                "vkDestroyImageView")
+	set_proc_address(&CreateShaderModule,                              "vkCreateShaderModule")
+	set_proc_address(&DestroyShaderModule,                             "vkDestroyShaderModule")
+	set_proc_address(&CreatePipelineCache,                             "vkCreatePipelineCache")
+	set_proc_address(&DestroyPipelineCache,                            "vkDestroyPipelineCache")
+	set_proc_address(&GetPipelineCacheData,                            "vkGetPipelineCacheData")
+	set_proc_address(&MergePipelineCaches,                             "vkMergePipelineCaches")
+	set_proc_address(&CreateGraphicsPipelines,                         "vkCreateGraphicsPipelines")
+	set_proc_address(&CreateComputePipelines,                          "vkCreateComputePipelines")
+	set_proc_address(&DestroyPipeline,                                 "vkDestroyPipeline")
+	set_proc_address(&CreatePipelineLayout,                            "vkCreatePipelineLayout")
+	set_proc_address(&DestroyPipelineLayout,                           "vkDestroyPipelineLayout")
+	set_proc_address(&CreateSampler,                                   "vkCreateSampler")
+	set_proc_address(&DestroySampler,                                  "vkDestroySampler")
+	set_proc_address(&CreateDescriptorSetLayout,                       "vkCreateDescriptorSetLayout")
+	set_proc_address(&DestroyDescriptorSetLayout,                      "vkDestroyDescriptorSetLayout")
+	set_proc_address(&CreateDescriptorPool,                            "vkCreateDescriptorPool")
+	set_proc_address(&DestroyDescriptorPool,                           "vkDestroyDescriptorPool")
+	set_proc_address(&ResetDescriptorPool,                             "vkResetDescriptorPool")
+	set_proc_address(&AllocateDescriptorSets,                          "vkAllocateDescriptorSets")
+	set_proc_address(&FreeDescriptorSets,                              "vkFreeDescriptorSets")
+	set_proc_address(&UpdateDescriptorSets,                            "vkUpdateDescriptorSets")
+	set_proc_address(&CreateFramebuffer,                               "vkCreateFramebuffer")
+	set_proc_address(&DestroyFramebuffer,                              "vkDestroyFramebuffer")
+	set_proc_address(&CreateRenderPass,                                "vkCreateRenderPass")
+	set_proc_address(&DestroyRenderPass,                               "vkDestroyRenderPass")
+	set_proc_address(&GetRenderAreaGranularity,                        "vkGetRenderAreaGranularity")
+	set_proc_address(&CreateCommandPool,                               "vkCreateCommandPool")
+	set_proc_address(&DestroyCommandPool,                              "vkDestroyCommandPool")
+	set_proc_address(&ResetCommandPool,                                "vkResetCommandPool")
+	set_proc_address(&AllocateCommandBuffers,                          "vkAllocateCommandBuffers")
+	set_proc_address(&FreeCommandBuffers,                              "vkFreeCommandBuffers")
+	set_proc_address(&BeginCommandBuffer,                              "vkBeginCommandBuffer")
+	set_proc_address(&EndCommandBuffer,                                "vkEndCommandBuffer")
+	set_proc_address(&ResetCommandBuffer,                              "vkResetCommandBuffer")
+	set_proc_address(&CmdBindPipeline,                                 "vkCmdBindPipeline")
+	set_proc_address(&CmdSetViewport,                                  "vkCmdSetViewport")
+	set_proc_address(&CmdSetScissor,                                   "vkCmdSetScissor")
+	set_proc_address(&CmdSetLineWidth,                                 "vkCmdSetLineWidth")
+	set_proc_address(&CmdSetDepthBias,                                 "vkCmdSetDepthBias")
+	set_proc_address(&CmdSetBlendConstants,                            "vkCmdSetBlendConstants")
+	set_proc_address(&CmdSetDepthBounds,                               "vkCmdSetDepthBounds")
+	set_proc_address(&CmdSetStencilCompareMask,                        "vkCmdSetStencilCompareMask")
+	set_proc_address(&CmdSetStencilWriteMask,                          "vkCmdSetStencilWriteMask")
+	set_proc_address(&CmdSetStencilReference,                          "vkCmdSetStencilReference")
+	set_proc_address(&CmdBindDescriptorSets,                           "vkCmdBindDescriptorSets")
+	set_proc_address(&CmdBindIndexBuffer,                              "vkCmdBindIndexBuffer")
+	set_proc_address(&CmdBindVertexBuffers,                            "vkCmdBindVertexBuffers")
+	set_proc_address(&CmdDraw,                                         "vkCmdDraw")
+	set_proc_address(&CmdDrawIndexed,                                  "vkCmdDrawIndexed")
+	set_proc_address(&CmdDrawIndirect,                                 "vkCmdDrawIndirect")
+	set_proc_address(&CmdDrawIndexedIndirect,                          "vkCmdDrawIndexedIndirect")
+	set_proc_address(&CmdDispatch,                                     "vkCmdDispatch")
+	set_proc_address(&CmdDispatchIndirect,                             "vkCmdDispatchIndirect")
+	set_proc_address(&CmdCopyBuffer,                                   "vkCmdCopyBuffer")
+	set_proc_address(&CmdCopyImage,                                    "vkCmdCopyImage")
+	set_proc_address(&CmdBlitImage,                                    "vkCmdBlitImage")
+	set_proc_address(&CmdCopyBufferToImage,                            "vkCmdCopyBufferToImage")
+	set_proc_address(&CmdCopyImageToBuffer,                            "vkCmdCopyImageToBuffer")
+	set_proc_address(&CmdUpdateBuffer,                                 "vkCmdUpdateBuffer")
+	set_proc_address(&CmdFillBuffer,                                   "vkCmdFillBuffer")
+	set_proc_address(&CmdClearColorImage,                              "vkCmdClearColorImage")
+	set_proc_address(&CmdClearDepthStencilImage,                       "vkCmdClearDepthStencilImage")
+	set_proc_address(&CmdClearAttachments,                             "vkCmdClearAttachments")
+	set_proc_address(&CmdResolveImage,                                 "vkCmdResolveImage")
+	set_proc_address(&CmdSetEvent,                                     "vkCmdSetEvent")
+	set_proc_address(&CmdResetEvent,                                   "vkCmdResetEvent")
+	set_proc_address(&CmdWaitEvents,                                   "vkCmdWaitEvents")
+	set_proc_address(&CmdPipelineBarrier,                              "vkCmdPipelineBarrier")
+	set_proc_address(&CmdBeginQuery,                                   "vkCmdBeginQuery")
+	set_proc_address(&CmdEndQuery,                                     "vkCmdEndQuery")
+	set_proc_address(&CmdResetQueryPool,                               "vkCmdResetQueryPool")
+	set_proc_address(&CmdWriteTimestamp,                               "vkCmdWriteTimestamp")
+	set_proc_address(&CmdCopyQueryPoolResults,                         "vkCmdCopyQueryPoolResults")
+	set_proc_address(&CmdPushConstants,                                "vkCmdPushConstants")
+	set_proc_address(&CmdBeginRenderPass,                              "vkCmdBeginRenderPass")
+	set_proc_address(&CmdNextSubpass,                                  "vkCmdNextSubpass")
+	set_proc_address(&CmdEndRenderPass,                                "vkCmdEndRenderPass")
+	set_proc_address(&CmdExecuteCommands,                              "vkCmdExecuteCommands")
+	set_proc_address(&BindBufferMemory2,                               "vkBindBufferMemory2")
+	set_proc_address(&BindImageMemory2,                                "vkBindImageMemory2")
+	set_proc_address(&GetDeviceGroupPeerMemoryFeatures,                "vkGetDeviceGroupPeerMemoryFeatures")
+	set_proc_address(&CmdSetDeviceMask,                                "vkCmdSetDeviceMask")
+	set_proc_address(&CmdDispatchBase,                                 "vkCmdDispatchBase")
+	set_proc_address(&GetImageMemoryRequirements2,                     "vkGetImageMemoryRequirements2")
+	set_proc_address(&GetBufferMemoryRequirements2,                    "vkGetBufferMemoryRequirements2")
+	set_proc_address(&GetImageSparseMemoryRequirements2,               "vkGetImageSparseMemoryRequirements2")
+	set_proc_address(&TrimCommandPool,                                 "vkTrimCommandPool")
+	set_proc_address(&GetDeviceQueue2,                                 "vkGetDeviceQueue2")
+	set_proc_address(&CreateSamplerYcbcrConversion,                    "vkCreateSamplerYcbcrConversion")
+	set_proc_address(&DestroySamplerYcbcrConversion,                   "vkDestroySamplerYcbcrConversion")
+	set_proc_address(&CreateDescriptorUpdateTemplate,                  "vkCreateDescriptorUpdateTemplate")
+	set_proc_address(&DestroyDescriptorUpdateTemplate,                 "vkDestroyDescriptorUpdateTemplate")
+	set_proc_address(&UpdateDescriptorSetWithTemplate,                 "vkUpdateDescriptorSetWithTemplate")
+	set_proc_address(&GetDescriptorSetLayoutSupport,                   "vkGetDescriptorSetLayoutSupport")
+	set_proc_address(&CmdDrawIndirectCount,                            "vkCmdDrawIndirectCount")
+	set_proc_address(&CmdDrawIndexedIndirectCount,                     "vkCmdDrawIndexedIndirectCount")
+	set_proc_address(&CreateRenderPass2,                               "vkCreateRenderPass2")
+	set_proc_address(&CmdBeginRenderPass2,                             "vkCmdBeginRenderPass2")
+	set_proc_address(&CmdNextSubpass2,                                 "vkCmdNextSubpass2")
+	set_proc_address(&CmdEndRenderPass2,                               "vkCmdEndRenderPass2")
+	set_proc_address(&ResetQueryPool,                                  "vkResetQueryPool")
+	set_proc_address(&GetSemaphoreCounterValue,                        "vkGetSemaphoreCounterValue")
+	set_proc_address(&WaitSemaphores,                                  "vkWaitSemaphores")
+	set_proc_address(&SignalSemaphore,                                 "vkSignalSemaphore")
+	set_proc_address(&GetBufferDeviceAddress,                          "vkGetBufferDeviceAddress")
+	set_proc_address(&GetBufferOpaqueCaptureAddress,                   "vkGetBufferOpaqueCaptureAddress")
+	set_proc_address(&GetDeviceMemoryOpaqueCaptureAddress,             "vkGetDeviceMemoryOpaqueCaptureAddress")
+	set_proc_address(&CreateSwapchainKHR,                              "vkCreateSwapchainKHR")
+	set_proc_address(&DestroySwapchainKHR,                             "vkDestroySwapchainKHR")
+	set_proc_address(&GetSwapchainImagesKHR,                           "vkGetSwapchainImagesKHR")
+	set_proc_address(&AcquireNextImageKHR,                             "vkAcquireNextImageKHR")
+	set_proc_address(&QueuePresentKHR,                                 "vkQueuePresentKHR")
+	set_proc_address(&GetDeviceGroupPresentCapabilitiesKHR,            "vkGetDeviceGroupPresentCapabilitiesKHR")
+	set_proc_address(&GetDeviceGroupSurfacePresentModesKHR,            "vkGetDeviceGroupSurfacePresentModesKHR")
+	set_proc_address(&AcquireNextImage2KHR,                            "vkAcquireNextImage2KHR")
+	set_proc_address(&CreateSharedSwapchainsKHR,                       "vkCreateSharedSwapchainsKHR")
+	set_proc_address(&GetDeviceGroupPeerMemoryFeaturesKHR,             "vkGetDeviceGroupPeerMemoryFeaturesKHR")
+	set_proc_address(&CmdSetDeviceMaskKHR,                             "vkCmdSetDeviceMaskKHR")
+	set_proc_address(&CmdDispatchBaseKHR,                              "vkCmdDispatchBaseKHR")
+	set_proc_address(&TrimCommandPoolKHR,                              "vkTrimCommandPoolKHR")
+	set_proc_address(&GetMemoryFdKHR,                                  "vkGetMemoryFdKHR")
+	set_proc_address(&GetMemoryFdPropertiesKHR,                        "vkGetMemoryFdPropertiesKHR")
+	set_proc_address(&ImportSemaphoreFdKHR,                            "vkImportSemaphoreFdKHR")
+	set_proc_address(&GetSemaphoreFdKHR,                               "vkGetSemaphoreFdKHR")
+	set_proc_address(&CmdPushDescriptorSetKHR,                         "vkCmdPushDescriptorSetKHR")
+	set_proc_address(&CmdPushDescriptorSetWithTemplateKHR,             "vkCmdPushDescriptorSetWithTemplateKHR")
+	set_proc_address(&CreateDescriptorUpdateTemplateKHR,               "vkCreateDescriptorUpdateTemplateKHR")
+	set_proc_address(&DestroyDescriptorUpdateTemplateKHR,              "vkDestroyDescriptorUpdateTemplateKHR")
+	set_proc_address(&UpdateDescriptorSetWithTemplateKHR,              "vkUpdateDescriptorSetWithTemplateKHR")
+	set_proc_address(&CreateRenderPass2KHR,                            "vkCreateRenderPass2KHR")
+	set_proc_address(&CmdBeginRenderPass2KHR,                          "vkCmdBeginRenderPass2KHR")
+	set_proc_address(&CmdNextSubpass2KHR,                              "vkCmdNextSubpass2KHR")
+	set_proc_address(&CmdEndRenderPass2KHR,                            "vkCmdEndRenderPass2KHR")
+	set_proc_address(&GetSwapchainStatusKHR,                           "vkGetSwapchainStatusKHR")
+	set_proc_address(&ImportFenceFdKHR,                                "vkImportFenceFdKHR")
+	set_proc_address(&GetFenceFdKHR,                                   "vkGetFenceFdKHR")
+	set_proc_address(&AcquireProfilingLockKHR,                         "vkAcquireProfilingLockKHR")
+	set_proc_address(&ReleaseProfilingLockKHR,                         "vkReleaseProfilingLockKHR")
+	set_proc_address(&GetImageMemoryRequirements2KHR,                  "vkGetImageMemoryRequirements2KHR")
+	set_proc_address(&GetBufferMemoryRequirements2KHR,                 "vkGetBufferMemoryRequirements2KHR")
+	set_proc_address(&GetImageSparseMemoryRequirements2KHR,            "vkGetImageSparseMemoryRequirements2KHR")
+	set_proc_address(&CreateSamplerYcbcrConversionKHR,                 "vkCreateSamplerYcbcrConversionKHR")
+	set_proc_address(&DestroySamplerYcbcrConversionKHR,                "vkDestroySamplerYcbcrConversionKHR")
+	set_proc_address(&BindBufferMemory2KHR,                            "vkBindBufferMemory2KHR")
+	set_proc_address(&BindImageMemory2KHR,                             "vkBindImageMemory2KHR")
+	set_proc_address(&GetDescriptorSetLayoutSupportKHR,                "vkGetDescriptorSetLayoutSupportKHR")
+	set_proc_address(&CmdDrawIndirectCountKHR,                         "vkCmdDrawIndirectCountKHR")
+	set_proc_address(&CmdDrawIndexedIndirectCountKHR,                  "vkCmdDrawIndexedIndirectCountKHR")
+	set_proc_address(&GetSemaphoreCounterValueKHR,                     "vkGetSemaphoreCounterValueKHR")
+	set_proc_address(&WaitSemaphoresKHR,                               "vkWaitSemaphoresKHR")
+	set_proc_address(&SignalSemaphoreKHR,                              "vkSignalSemaphoreKHR")
+	set_proc_address(&CmdSetFragmentShadingRateKHR,                    "vkCmdSetFragmentShadingRateKHR")
+	set_proc_address(&WaitForPresentKHR,                               "vkWaitForPresentKHR")
+	set_proc_address(&GetBufferDeviceAddressKHR,                       "vkGetBufferDeviceAddressKHR")
+	set_proc_address(&GetBufferOpaqueCaptureAddressKHR,                "vkGetBufferOpaqueCaptureAddressKHR")
+	set_proc_address(&GetDeviceMemoryOpaqueCaptureAddressKHR,          "vkGetDeviceMemoryOpaqueCaptureAddressKHR")
+	set_proc_address(&CreateDeferredOperationKHR,                      "vkCreateDeferredOperationKHR")
+	set_proc_address(&DestroyDeferredOperationKHR,                     "vkDestroyDeferredOperationKHR")
+	set_proc_address(&GetDeferredOperationMaxConcurrencyKHR,           "vkGetDeferredOperationMaxConcurrencyKHR")
+	set_proc_address(&GetDeferredOperationResultKHR,                   "vkGetDeferredOperationResultKHR")
+	set_proc_address(&DeferredOperationJoinKHR,                        "vkDeferredOperationJoinKHR")
+	set_proc_address(&GetPipelineExecutablePropertiesKHR,              "vkGetPipelineExecutablePropertiesKHR")
+	set_proc_address(&GetPipelineExecutableStatisticsKHR,              "vkGetPipelineExecutableStatisticsKHR")
+	set_proc_address(&GetPipelineExecutableInternalRepresentationsKHR, "vkGetPipelineExecutableInternalRepresentationsKHR")
+	set_proc_address(&CmdSetEvent2KHR,                                 "vkCmdSetEvent2KHR")
+	set_proc_address(&CmdResetEvent2KHR,                               "vkCmdResetEvent2KHR")
+	set_proc_address(&CmdWaitEvents2KHR,                               "vkCmdWaitEvents2KHR")
+	set_proc_address(&CmdPipelineBarrier2KHR,                          "vkCmdPipelineBarrier2KHR")
+	set_proc_address(&CmdWriteTimestamp2KHR,                           "vkCmdWriteTimestamp2KHR")
+	set_proc_address(&QueueSubmit2KHR,                                 "vkQueueSubmit2KHR")
+	set_proc_address(&CmdWriteBufferMarker2AMD,                        "vkCmdWriteBufferMarker2AMD")
+	set_proc_address(&GetQueueCheckpointData2NV,                       "vkGetQueueCheckpointData2NV")
+	set_proc_address(&CmdCopyBuffer2KHR,                               "vkCmdCopyBuffer2KHR")
+	set_proc_address(&CmdCopyImage2KHR,                                "vkCmdCopyImage2KHR")
+	set_proc_address(&CmdCopyBufferToImage2KHR,                        "vkCmdCopyBufferToImage2KHR")
+	set_proc_address(&CmdCopyImageToBuffer2KHR,                        "vkCmdCopyImageToBuffer2KHR")
+	set_proc_address(&CmdBlitImage2KHR,                                "vkCmdBlitImage2KHR")
+	set_proc_address(&CmdResolveImage2KHR,                             "vkCmdResolveImage2KHR")
+	set_proc_address(&DebugMarkerSetObjectTagEXT,                      "vkDebugMarkerSetObjectTagEXT")
+	set_proc_address(&DebugMarkerSetObjectNameEXT,                     "vkDebugMarkerSetObjectNameEXT")
+	set_proc_address(&CmdDebugMarkerBeginEXT,                          "vkCmdDebugMarkerBeginEXT")
+	set_proc_address(&CmdDebugMarkerEndEXT,                            "vkCmdDebugMarkerEndEXT")
+	set_proc_address(&CmdDebugMarkerInsertEXT,                         "vkCmdDebugMarkerInsertEXT")
+	set_proc_address(&CmdBindTransformFeedbackBuffersEXT,              "vkCmdBindTransformFeedbackBuffersEXT")
+	set_proc_address(&CmdBeginTransformFeedbackEXT,                    "vkCmdBeginTransformFeedbackEXT")
+	set_proc_address(&CmdEndTransformFeedbackEXT,                      "vkCmdEndTransformFeedbackEXT")
+	set_proc_address(&CmdBeginQueryIndexedEXT,                         "vkCmdBeginQueryIndexedEXT")
+	set_proc_address(&CmdEndQueryIndexedEXT,                           "vkCmdEndQueryIndexedEXT")
+	set_proc_address(&CmdDrawIndirectByteCountEXT,                     "vkCmdDrawIndirectByteCountEXT")
+	set_proc_address(&CreateCuModuleNVX,                               "vkCreateCuModuleNVX")
+	set_proc_address(&CreateCuFunctionNVX,                             "vkCreateCuFunctionNVX")
+	set_proc_address(&DestroyCuModuleNVX,                              "vkDestroyCuModuleNVX")
+	set_proc_address(&DestroyCuFunctionNVX,                            "vkDestroyCuFunctionNVX")
+	set_proc_address(&CmdCuLaunchKernelNVX,                            "vkCmdCuLaunchKernelNVX")
+	set_proc_address(&GetImageViewHandleNVX,                           "vkGetImageViewHandleNVX")
+	set_proc_address(&GetImageViewAddressNVX,                          "vkGetImageViewAddressNVX")
+	set_proc_address(&CmdDrawIndirectCountAMD,                         "vkCmdDrawIndirectCountAMD")
+	set_proc_address(&CmdDrawIndexedIndirectCountAMD,                  "vkCmdDrawIndexedIndirectCountAMD")
+	set_proc_address(&GetShaderInfoAMD,                                "vkGetShaderInfoAMD")
+	set_proc_address(&CmdBeginConditionalRenderingEXT,                 "vkCmdBeginConditionalRenderingEXT")
+	set_proc_address(&CmdEndConditionalRenderingEXT,                   "vkCmdEndConditionalRenderingEXT")
+	set_proc_address(&CmdSetViewportWScalingNV,                        "vkCmdSetViewportWScalingNV")
+	set_proc_address(&DisplayPowerControlEXT,                          "vkDisplayPowerControlEXT")
+	set_proc_address(&RegisterDeviceEventEXT,                          "vkRegisterDeviceEventEXT")
+	set_proc_address(&RegisterDisplayEventEXT,                         "vkRegisterDisplayEventEXT")
+	set_proc_address(&GetSwapchainCounterEXT,                          "vkGetSwapchainCounterEXT")
+	set_proc_address(&GetRefreshCycleDurationGOOGLE,                   "vkGetRefreshCycleDurationGOOGLE")
+	set_proc_address(&GetPastPresentationTimingGOOGLE,                 "vkGetPastPresentationTimingGOOGLE")
+	set_proc_address(&CmdSetDiscardRectangleEXT,                       "vkCmdSetDiscardRectangleEXT")
+	set_proc_address(&SetHdrMetadataEXT,                               "vkSetHdrMetadataEXT")
+	set_proc_address(&SetDebugUtilsObjectNameEXT,                      "vkSetDebugUtilsObjectNameEXT")
+	set_proc_address(&SetDebugUtilsObjectTagEXT,                       "vkSetDebugUtilsObjectTagEXT")
+	set_proc_address(&QueueBeginDebugUtilsLabelEXT,                    "vkQueueBeginDebugUtilsLabelEXT")
+	set_proc_address(&QueueEndDebugUtilsLabelEXT,                      "vkQueueEndDebugUtilsLabelEXT")
+	set_proc_address(&QueueInsertDebugUtilsLabelEXT,                   "vkQueueInsertDebugUtilsLabelEXT")
+	set_proc_address(&CmdBeginDebugUtilsLabelEXT,                      "vkCmdBeginDebugUtilsLabelEXT")
+	set_proc_address(&CmdEndDebugUtilsLabelEXT,                        "vkCmdEndDebugUtilsLabelEXT")
+	set_proc_address(&CmdInsertDebugUtilsLabelEXT,                     "vkCmdInsertDebugUtilsLabelEXT")
+	set_proc_address(&CmdSetSampleLocationsEXT,                        "vkCmdSetSampleLocationsEXT")
+	set_proc_address(&GetImageDrmFormatModifierPropertiesEXT,          "vkGetImageDrmFormatModifierPropertiesEXT")
+	set_proc_address(&CreateValidationCacheEXT,                        "vkCreateValidationCacheEXT")
+	set_proc_address(&DestroyValidationCacheEXT,                       "vkDestroyValidationCacheEXT")
+	set_proc_address(&MergeValidationCachesEXT,                        "vkMergeValidationCachesEXT")
+	set_proc_address(&GetValidationCacheDataEXT,                       "vkGetValidationCacheDataEXT")
+	set_proc_address(&CmdBindShadingRateImageNV,                       "vkCmdBindShadingRateImageNV")
+	set_proc_address(&CmdSetViewportShadingRatePaletteNV,              "vkCmdSetViewportShadingRatePaletteNV")
+	set_proc_address(&CmdSetCoarseSampleOrderNV,                       "vkCmdSetCoarseSampleOrderNV")
+	set_proc_address(&CreateAccelerationStructureNV,                   "vkCreateAccelerationStructureNV")
+	set_proc_address(&DestroyAccelerationStructureNV,                  "vkDestroyAccelerationStructureNV")
+	set_proc_address(&GetAccelerationStructureMemoryRequirementsNV,    "vkGetAccelerationStructureMemoryRequirementsNV")
+	set_proc_address(&BindAccelerationStructureMemoryNV,               "vkBindAccelerationStructureMemoryNV")
+	set_proc_address(&CmdBuildAccelerationStructureNV,                 "vkCmdBuildAccelerationStructureNV")
+	set_proc_address(&CmdCopyAccelerationStructureNV,                  "vkCmdCopyAccelerationStructureNV")
+	set_proc_address(&CmdTraceRaysNV,                                  "vkCmdTraceRaysNV")
+	set_proc_address(&CreateRayTracingPipelinesNV,                     "vkCreateRayTracingPipelinesNV")
+	set_proc_address(&GetRayTracingShaderGroupHandlesKHR,              "vkGetRayTracingShaderGroupHandlesKHR")
+	set_proc_address(&GetRayTracingShaderGroupHandlesNV,               "vkGetRayTracingShaderGroupHandlesNV")
+	set_proc_address(&GetAccelerationStructureHandleNV,                "vkGetAccelerationStructureHandleNV")
+	set_proc_address(&CmdWriteAccelerationStructuresPropertiesNV,      "vkCmdWriteAccelerationStructuresPropertiesNV")
+	set_proc_address(&CompileDeferredNV,                               "vkCompileDeferredNV")
+	set_proc_address(&GetMemoryHostPointerPropertiesEXT,               "vkGetMemoryHostPointerPropertiesEXT")
+	set_proc_address(&CmdWriteBufferMarkerAMD,                         "vkCmdWriteBufferMarkerAMD")
+	set_proc_address(&GetCalibratedTimestampsEXT,                      "vkGetCalibratedTimestampsEXT")
+	set_proc_address(&CmdDrawMeshTasksNV,                              "vkCmdDrawMeshTasksNV")
+	set_proc_address(&CmdDrawMeshTasksIndirectNV,                      "vkCmdDrawMeshTasksIndirectNV")
+	set_proc_address(&CmdDrawMeshTasksIndirectCountNV,                 "vkCmdDrawMeshTasksIndirectCountNV")
+	set_proc_address(&CmdSetExclusiveScissorNV,                        "vkCmdSetExclusiveScissorNV")
+	set_proc_address(&CmdSetCheckpointNV,                              "vkCmdSetCheckpointNV")
+	set_proc_address(&GetQueueCheckpointDataNV,                        "vkGetQueueCheckpointDataNV")
+	set_proc_address(&InitializePerformanceApiINTEL,                   "vkInitializePerformanceApiINTEL")
+	set_proc_address(&UninitializePerformanceApiINTEL,                 "vkUninitializePerformanceApiINTEL")
+	set_proc_address(&CmdSetPerformanceMarkerINTEL,                    "vkCmdSetPerformanceMarkerINTEL")
+	set_proc_address(&CmdSetPerformanceStreamMarkerINTEL,              "vkCmdSetPerformanceStreamMarkerINTEL")
+	set_proc_address(&CmdSetPerformanceOverrideINTEL,                  "vkCmdSetPerformanceOverrideINTEL")
+	set_proc_address(&AcquirePerformanceConfigurationINTEL,            "vkAcquirePerformanceConfigurationINTEL")
+	set_proc_address(&ReleasePerformanceConfigurationINTEL,            "vkReleasePerformanceConfigurationINTEL")
+	set_proc_address(&QueueSetPerformanceConfigurationINTEL,           "vkQueueSetPerformanceConfigurationINTEL")
+	set_proc_address(&GetPerformanceParameterINTEL,                    "vkGetPerformanceParameterINTEL")
+	set_proc_address(&SetLocalDimmingAMD,                              "vkSetLocalDimmingAMD")
+	set_proc_address(&GetBufferDeviceAddressEXT,                       "vkGetBufferDeviceAddressEXT")
+	set_proc_address(&CmdSetLineStippleEXT,                            "vkCmdSetLineStippleEXT")
+	set_proc_address(&ResetQueryPoolEXT,                               "vkResetQueryPoolEXT")
+	set_proc_address(&CmdSetCullModeEXT,                               "vkCmdSetCullModeEXT")
+	set_proc_address(&CmdSetFrontFaceEXT,                              "vkCmdSetFrontFaceEXT")
+	set_proc_address(&CmdSetPrimitiveTopologyEXT,                      "vkCmdSetPrimitiveTopologyEXT")
+	set_proc_address(&CmdSetViewportWithCountEXT,                      "vkCmdSetViewportWithCountEXT")
+	set_proc_address(&CmdSetScissorWithCountEXT,                       "vkCmdSetScissorWithCountEXT")
+	set_proc_address(&CmdBindVertexBuffers2EXT,                        "vkCmdBindVertexBuffers2EXT")
+	set_proc_address(&CmdSetDepthTestEnableEXT,                        "vkCmdSetDepthTestEnableEXT")
+	set_proc_address(&CmdSetDepthWriteEnableEXT,                       "vkCmdSetDepthWriteEnableEXT")
+	set_proc_address(&CmdSetDepthCompareOpEXT,                         "vkCmdSetDepthCompareOpEXT")
+	set_proc_address(&CmdSetDepthBoundsTestEnableEXT,                  "vkCmdSetDepthBoundsTestEnableEXT")
+	set_proc_address(&CmdSetStencilTestEnableEXT,                      "vkCmdSetStencilTestEnableEXT")
+	set_proc_address(&CmdSetStencilOpEXT,                              "vkCmdSetStencilOpEXT")
+	set_proc_address(&GetGeneratedCommandsMemoryRequirementsNV,        "vkGetGeneratedCommandsMemoryRequirementsNV")
+	set_proc_address(&CmdPreprocessGeneratedCommandsNV,                "vkCmdPreprocessGeneratedCommandsNV")
+	set_proc_address(&CmdExecuteGeneratedCommandsNV,                   "vkCmdExecuteGeneratedCommandsNV")
+	set_proc_address(&CmdBindPipelineShaderGroupNV,                    "vkCmdBindPipelineShaderGroupNV")
+	set_proc_address(&CreateIndirectCommandsLayoutNV,                  "vkCreateIndirectCommandsLayoutNV")
+	set_proc_address(&DestroyIndirectCommandsLayoutNV,                 "vkDestroyIndirectCommandsLayoutNV")
+	set_proc_address(&CreatePrivateDataSlotEXT,                        "vkCreatePrivateDataSlotEXT")
+	set_proc_address(&DestroyPrivateDataSlotEXT,                       "vkDestroyPrivateDataSlotEXT")
+	set_proc_address(&SetPrivateDataEXT,                               "vkSetPrivateDataEXT")
+	set_proc_address(&GetPrivateDataEXT,                               "vkGetPrivateDataEXT")
+	set_proc_address(&CmdSetFragmentShadingRateEnumNV,                 "vkCmdSetFragmentShadingRateEnumNV")
+	set_proc_address(&CmdSetVertexInputEXT,                            "vkCmdSetVertexInputEXT")
+	set_proc_address(&GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,   "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")
+	set_proc_address(&CmdSubpassShadingHUAWEI,                         "vkCmdSubpassShadingHUAWEI")
+	set_proc_address(&CmdBindInvocationMaskHUAWEI,                     "vkCmdBindInvocationMaskHUAWEI")
+	set_proc_address(&GetMemoryRemoteAddressNV,                        "vkGetMemoryRemoteAddressNV")
+	set_proc_address(&CmdSetPatchControlPointsEXT,                     "vkCmdSetPatchControlPointsEXT")
+	set_proc_address(&CmdSetRasterizerDiscardEnableEXT,                "vkCmdSetRasterizerDiscardEnableEXT")
+	set_proc_address(&CmdSetDepthBiasEnableEXT,                        "vkCmdSetDepthBiasEnableEXT")
+	set_proc_address(&CmdSetLogicOpEXT,                                "vkCmdSetLogicOpEXT")
+	set_proc_address(&CmdSetPrimitiveRestartEnableEXT,                 "vkCmdSetPrimitiveRestartEnableEXT")
+	set_proc_address(&CmdDrawMultiEXT,                                 "vkCmdDrawMultiEXT")
+	set_proc_address(&CmdDrawMultiIndexedEXT,                          "vkCmdDrawMultiIndexedEXT")
+	set_proc_address(&CreateAccelerationStructureKHR,                  "vkCreateAccelerationStructureKHR")
+	set_proc_address(&DestroyAccelerationStructureKHR,                 "vkDestroyAccelerationStructureKHR")
+	set_proc_address(&CmdBuildAccelerationStructuresKHR,               "vkCmdBuildAccelerationStructuresKHR")
+	set_proc_address(&CmdBuildAccelerationStructuresIndirectKHR,       "vkCmdBuildAccelerationStructuresIndirectKHR")
+	set_proc_address(&BuildAccelerationStructuresKHR,                  "vkBuildAccelerationStructuresKHR")
+	set_proc_address(&CopyAccelerationStructureKHR,                    "vkCopyAccelerationStructureKHR")
+	set_proc_address(&CopyAccelerationStructureToMemoryKHR,            "vkCopyAccelerationStructureToMemoryKHR")
+	set_proc_address(&CopyMemoryToAccelerationStructureKHR,            "vkCopyMemoryToAccelerationStructureKHR")
+	set_proc_address(&WriteAccelerationStructuresPropertiesKHR,        "vkWriteAccelerationStructuresPropertiesKHR")
+	set_proc_address(&CmdCopyAccelerationStructureKHR,                 "vkCmdCopyAccelerationStructureKHR")
+	set_proc_address(&CmdCopyAccelerationStructureToMemoryKHR,         "vkCmdCopyAccelerationStructureToMemoryKHR")
+	set_proc_address(&CmdCopyMemoryToAccelerationStructureKHR,         "vkCmdCopyMemoryToAccelerationStructureKHR")
+	set_proc_address(&GetAccelerationStructureDeviceAddressKHR,        "vkGetAccelerationStructureDeviceAddressKHR")
+	set_proc_address(&CmdWriteAccelerationStructuresPropertiesKHR,     "vkCmdWriteAccelerationStructuresPropertiesKHR")
+	set_proc_address(&GetDeviceAccelerationStructureCompatibilityKHR,  "vkGetDeviceAccelerationStructureCompatibilityKHR")
+	set_proc_address(&GetAccelerationStructureBuildSizesKHR,           "vkGetAccelerationStructureBuildSizesKHR")
+	set_proc_address(&CmdTraceRaysKHR,                                 "vkCmdTraceRaysKHR")
+	set_proc_address(&CreateRayTracingPipelinesKHR,                    "vkCreateRayTracingPipelinesKHR")
+	set_proc_address(&GetRayTracingCaptureReplayShaderGroupHandlesKHR, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")
+	set_proc_address(&CmdTraceRaysIndirectKHR,                         "vkCmdTraceRaysIndirectKHR")
+	set_proc_address(&GetRayTracingShaderGroupStackSizeKHR,            "vkGetRayTracingShaderGroupStackSizeKHR")
+	set_proc_address(&CmdSetRayTracingPipelineStackSizeKHR,            "vkCmdSetRayTracingPipelineStackSizeKHR")
+	set_proc_address(&GetMemoryWin32HandleKHR,                         "vkGetMemoryWin32HandleKHR")
+	set_proc_address(&GetMemoryWin32HandlePropertiesKHR,               "vkGetMemoryWin32HandlePropertiesKHR")
+	set_proc_address(&ImportSemaphoreWin32HandleKHR,                   "vkImportSemaphoreWin32HandleKHR")
+	set_proc_address(&GetSemaphoreWin32HandleKHR,                      "vkGetSemaphoreWin32HandleKHR")
+	set_proc_address(&ImportFenceWin32HandleKHR,                       "vkImportFenceWin32HandleKHR")
+	set_proc_address(&GetFenceWin32HandleKHR,                          "vkGetFenceWin32HandleKHR")
+	set_proc_address(&GetMemoryWin32HandleNV,                          "vkGetMemoryWin32HandleNV")
+	set_proc_address(&AcquireFullScreenExclusiveModeEXT,               "vkAcquireFullScreenExclusiveModeEXT")
+	set_proc_address(&ReleaseFullScreenExclusiveModeEXT,               "vkReleaseFullScreenExclusiveModeEXT")
+	set_proc_address(&GetDeviceGroupSurfacePresentModes2EXT,           "vkGetDeviceGroupSurfacePresentModes2EXT")
 
 	// Loader Procedures
-	set_proc_address(&CreateInstance,                       "vkCreateInstance");
-	set_proc_address(&EnumerateInstanceExtensionProperties, "vkEnumerateInstanceExtensionProperties");
-	set_proc_address(&EnumerateInstanceLayerProperties,     "vkEnumerateInstanceLayerProperties");
-	set_proc_address(&EnumerateInstanceVersion,             "vkEnumerateInstanceVersion");
-	set_proc_address(&DebugUtilsMessengerCallbackEXT,       "vkDebugUtilsMessengerCallbackEXT");
-	set_proc_address(&DeviceMemoryReportCallbackEXT,        "vkDeviceMemoryReportCallbackEXT");
+	set_proc_address(&CreateInstance,                       "vkCreateInstance")
+	set_proc_address(&EnumerateInstanceExtensionProperties, "vkEnumerateInstanceExtensionProperties")
+	set_proc_address(&EnumerateInstanceLayerProperties,     "vkEnumerateInstanceLayerProperties")
+	set_proc_address(&EnumerateInstanceVersion,             "vkEnumerateInstanceVersion")
+	set_proc_address(&DebugUtilsMessengerCallbackEXT,       "vkDebugUtilsMessengerCallbackEXT")
+	set_proc_address(&DeviceMemoryReportCallbackEXT,        "vkDeviceMemoryReportCallbackEXT")
 
 }
 

+ 191 - 191
vendor/vulkan/structs.odin

@@ -8,31 +8,31 @@ import "core:c"
 when ODIN_OS == "windows" {
 	import win32 "core:sys/windows"
 
-	HINSTANCE           :: win32.HINSTANCE;
-	HWND                :: win32.HWND;
-	HMONITOR            :: win32.HMONITOR;
-	HANDLE              :: win32.HANDLE;
-	LPCWSTR             :: win32.LPCWSTR;
-	SECURITY_ATTRIBUTES :: win32.SECURITY_ATTRIBUTES;
-	DWORD               :: win32.DWORD;
-	LONG                :: win32.LONG;
-	LUID                :: win32.LUID;
+	HINSTANCE           :: win32.HINSTANCE
+	HWND                :: win32.HWND
+	HMONITOR            :: win32.HMONITOR
+	HANDLE              :: win32.HANDLE
+	LPCWSTR             :: win32.LPCWSTR
+	SECURITY_ATTRIBUTES :: win32.SECURITY_ATTRIBUTES
+	DWORD               :: win32.DWORD
+	LONG                :: win32.LONG
+	LUID                :: win32.LUID
 } else {
-	HINSTANCE           :: distinct rawptr;
-	HWND                :: distinct rawptr;
-	HMONITOR            :: distinct rawptr;
-	HANDLE              :: distinct rawptr;
-	LPCWSTR             :: ^u16;
-	SECURITY_ATTRIBUTES :: struct {};
-	DWORD               :: u32;
-	LONG                :: c.long;
+	HINSTANCE           :: distinct rawptr
+	HWND                :: distinct rawptr
+	HMONITOR            :: distinct rawptr
+	HANDLE              :: distinct rawptr
+	LPCWSTR             :: ^u16
+	SECURITY_ATTRIBUTES :: struct {}
+	DWORD               :: u32
+	LONG                :: c.long
 	LUID :: struct {
 		LowPart:  DWORD,
 		HighPart: LONG,
 	}
 }
 
-CAMetalLayer :: struct {};
+CAMetalLayer :: struct {}
 
 /********************************/
 
@@ -5229,178 +5229,178 @@ IOSSurfaceCreateInfoMVK :: struct {
 }
 
 // Aliases
-PhysicalDeviceVariablePointerFeatures                :: PhysicalDeviceVariablePointersFeatures;
-PhysicalDeviceShaderDrawParameterFeatures            :: PhysicalDeviceShaderDrawParametersFeatures;
-RenderPassMultiviewCreateInfoKHR                     :: RenderPassMultiviewCreateInfo;
-PhysicalDeviceMultiviewFeaturesKHR                   :: PhysicalDeviceMultiviewFeatures;
-PhysicalDeviceMultiviewPropertiesKHR                 :: PhysicalDeviceMultiviewProperties;
-PhysicalDeviceFeatures2KHR                           :: PhysicalDeviceFeatures2;
-PhysicalDeviceProperties2KHR                         :: PhysicalDeviceProperties2;
-FormatProperties2KHR                                 :: FormatProperties2;
-ImageFormatProperties2KHR                            :: ImageFormatProperties2;
-PhysicalDeviceImageFormatInfo2KHR                    :: PhysicalDeviceImageFormatInfo2;
-QueueFamilyProperties2KHR                            :: QueueFamilyProperties2;
-PhysicalDeviceMemoryProperties2KHR                   :: PhysicalDeviceMemoryProperties2;
-SparseImageFormatProperties2KHR                      :: SparseImageFormatProperties2;
-PhysicalDeviceSparseImageFormatInfo2KHR              :: PhysicalDeviceSparseImageFormatInfo2;
-PeerMemoryFeatureFlagsKHR                            :: PeerMemoryFeatureFlags;
-PeerMemoryFeatureFlagKHR                             :: PeerMemoryFeatureFlag;
-MemoryAllocateFlagsKHR                               :: MemoryAllocateFlags;
-MemoryAllocateFlagKHR                                :: MemoryAllocateFlag;
-MemoryAllocateFlagsInfoKHR                           :: MemoryAllocateFlagsInfo;
-DeviceGroupRenderPassBeginInfoKHR                    :: DeviceGroupRenderPassBeginInfo;
-DeviceGroupCommandBufferBeginInfoKHR                 :: DeviceGroupCommandBufferBeginInfo;
-DeviceGroupSubmitInfoKHR                             :: DeviceGroupSubmitInfo;
-DeviceGroupBindSparseInfoKHR                         :: DeviceGroupBindSparseInfo;
-BindBufferMemoryDeviceGroupInfoKHR                   :: BindBufferMemoryDeviceGroupInfo;
-BindImageMemoryDeviceGroupInfoKHR                    :: BindImageMemoryDeviceGroupInfo;
-CommandPoolTrimFlagsKHR                              :: CommandPoolTrimFlags;
-PhysicalDeviceGroupPropertiesKHR                     :: PhysicalDeviceGroupProperties;
-DeviceGroupDeviceCreateInfoKHR                       :: DeviceGroupDeviceCreateInfo;
-ExternalMemoryHandleTypeFlagsKHR                     :: ExternalMemoryHandleTypeFlags;
-ExternalMemoryHandleTypeFlagKHR                      :: ExternalMemoryHandleTypeFlag;
-ExternalMemoryFeatureFlagsKHR                        :: ExternalMemoryFeatureFlags;
-ExternalMemoryFeatureFlagKHR                         :: ExternalMemoryFeatureFlag;
-ExternalMemoryPropertiesKHR                          :: ExternalMemoryProperties;
-PhysicalDeviceExternalImageFormatInfoKHR             :: PhysicalDeviceExternalImageFormatInfo;
-ExternalImageFormatPropertiesKHR                     :: ExternalImageFormatProperties;
-PhysicalDeviceExternalBufferInfoKHR                  :: PhysicalDeviceExternalBufferInfo;
-ExternalBufferPropertiesKHR                          :: ExternalBufferProperties;
-PhysicalDeviceIDPropertiesKHR                        :: PhysicalDeviceIDProperties;
-ExternalMemoryImageCreateInfoKHR                     :: ExternalMemoryImageCreateInfo;
-ExternalMemoryBufferCreateInfoKHR                    :: ExternalMemoryBufferCreateInfo;
-ExportMemoryAllocateInfoKHR                          :: ExportMemoryAllocateInfo;
-ExternalSemaphoreHandleTypeFlagsKHR                  :: ExternalSemaphoreHandleTypeFlags;
-ExternalSemaphoreHandleTypeFlagKHR                   :: ExternalSemaphoreHandleTypeFlag;
-ExternalSemaphoreFeatureFlagsKHR                     :: ExternalSemaphoreFeatureFlags;
-ExternalSemaphoreFeatureFlagKHR                      :: ExternalSemaphoreFeatureFlag;
-PhysicalDeviceExternalSemaphoreInfoKHR               :: PhysicalDeviceExternalSemaphoreInfo;
-ExternalSemaphorePropertiesKHR                       :: ExternalSemaphoreProperties;
-SemaphoreImportFlagsKHR                              :: SemaphoreImportFlags;
-SemaphoreImportFlagKHR                               :: SemaphoreImportFlag;
-ExportSemaphoreCreateInfoKHR                         :: ExportSemaphoreCreateInfo;
-PhysicalDeviceShaderFloat16Int8FeaturesKHR           :: PhysicalDeviceShaderFloat16Int8Features;
-PhysicalDeviceFloat16Int8FeaturesKHR                 :: PhysicalDeviceShaderFloat16Int8Features;
-PhysicalDevice16BitStorageFeaturesKHR                :: PhysicalDevice16BitStorageFeatures;
-DescriptorUpdateTemplateKHR                          :: DescriptorUpdateTemplate;
-DescriptorUpdateTemplateTypeKHR                      :: DescriptorUpdateTemplateType;
-DescriptorUpdateTemplateCreateFlagsKHR               :: DescriptorUpdateTemplateCreateFlags;
-DescriptorUpdateTemplateEntryKHR                     :: DescriptorUpdateTemplateEntry;
-DescriptorUpdateTemplateCreateInfoKHR                :: DescriptorUpdateTemplateCreateInfo;
-PhysicalDeviceImagelessFramebufferFeaturesKHR        :: PhysicalDeviceImagelessFramebufferFeatures;
-FramebufferAttachmentsCreateInfoKHR                  :: FramebufferAttachmentsCreateInfo;
-FramebufferAttachmentImageInfoKHR                    :: FramebufferAttachmentImageInfo;
-RenderPassAttachmentBeginInfoKHR                     :: RenderPassAttachmentBeginInfo;
-RenderPassCreateInfo2KHR                             :: RenderPassCreateInfo2;
-AttachmentDescription2KHR                            :: AttachmentDescription2;
-AttachmentReference2KHR                              :: AttachmentReference2;
-SubpassDescription2KHR                               :: SubpassDescription2;
-SubpassDependency2KHR                                :: SubpassDependency2;
-SubpassBeginInfoKHR                                  :: SubpassBeginInfo;
-SubpassEndInfoKHR                                    :: SubpassEndInfo;
-ExternalFenceHandleTypeFlagsKHR                      :: ExternalFenceHandleTypeFlags;
-ExternalFenceHandleTypeFlagKHR                       :: ExternalFenceHandleTypeFlag;
-ExternalFenceFeatureFlagsKHR                         :: ExternalFenceFeatureFlags;
-ExternalFenceFeatureFlagKHR                          :: ExternalFenceFeatureFlag;
-PhysicalDeviceExternalFenceInfoKHR                   :: PhysicalDeviceExternalFenceInfo;
-ExternalFencePropertiesKHR                           :: ExternalFenceProperties;
-FenceImportFlagsKHR                                  :: FenceImportFlags;
-FenceImportFlagKHR                                   :: FenceImportFlag;
-ExportFenceCreateInfoKHR                             :: ExportFenceCreateInfo;
-PointClippingBehaviorKHR                             :: PointClippingBehavior;
-TessellationDomainOriginKHR                          :: TessellationDomainOrigin;
-PhysicalDevicePointClippingPropertiesKHR             :: PhysicalDevicePointClippingProperties;
-RenderPassInputAttachmentAspectCreateInfoKHR         :: RenderPassInputAttachmentAspectCreateInfo;
-InputAttachmentAspectReferenceKHR                    :: InputAttachmentAspectReference;
-ImageViewUsageCreateInfoKHR                          :: ImageViewUsageCreateInfo;
-PipelineTessellationDomainOriginStateCreateInfoKHR   :: PipelineTessellationDomainOriginStateCreateInfo;
-PhysicalDeviceVariablePointerFeaturesKHR             :: PhysicalDeviceVariablePointersFeatures;
-PhysicalDeviceVariablePointersFeaturesKHR            :: PhysicalDeviceVariablePointersFeatures;
-MemoryDedicatedRequirementsKHR                       :: MemoryDedicatedRequirements;
-MemoryDedicatedAllocateInfoKHR                       :: MemoryDedicatedAllocateInfo;
-BufferMemoryRequirementsInfo2KHR                     :: BufferMemoryRequirementsInfo2;
-ImageMemoryRequirementsInfo2KHR                      :: ImageMemoryRequirementsInfo2;
-ImageSparseMemoryRequirementsInfo2KHR                :: ImageSparseMemoryRequirementsInfo2;
-MemoryRequirements2KHR                               :: MemoryRequirements2;
-SparseImageMemoryRequirements2KHR                    :: SparseImageMemoryRequirements2;
-ImageFormatListCreateInfoKHR                         :: ImageFormatListCreateInfo;
-SamplerYcbcrConversionKHR                            :: SamplerYcbcrConversion;
-SamplerYcbcrModelConversionKHR                       :: SamplerYcbcrModelConversion;
-SamplerYcbcrRangeKHR                                 :: SamplerYcbcrRange;
-ChromaLocationKHR                                    :: ChromaLocation;
-SamplerYcbcrConversionCreateInfoKHR                  :: SamplerYcbcrConversionCreateInfo;
-SamplerYcbcrConversionInfoKHR                        :: SamplerYcbcrConversionInfo;
-BindImagePlaneMemoryInfoKHR                          :: BindImagePlaneMemoryInfo;
-ImagePlaneMemoryRequirementsInfoKHR                  :: ImagePlaneMemoryRequirementsInfo;
-PhysicalDeviceSamplerYcbcrConversionFeaturesKHR      :: PhysicalDeviceSamplerYcbcrConversionFeatures;
-SamplerYcbcrConversionImageFormatPropertiesKHR       :: SamplerYcbcrConversionImageFormatProperties;
-BindBufferMemoryInfoKHR                              :: BindBufferMemoryInfo;
-BindImageMemoryInfoKHR                               :: BindImageMemoryInfo;
-PhysicalDeviceMaintenance3PropertiesKHR              :: PhysicalDeviceMaintenance3Properties;
-DescriptorSetLayoutSupportKHR                        :: DescriptorSetLayoutSupport;
-PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR :: PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
-PhysicalDevice8BitStorageFeaturesKHR                 :: PhysicalDevice8BitStorageFeatures;
-PhysicalDeviceShaderAtomicInt64FeaturesKHR           :: PhysicalDeviceShaderAtomicInt64Features;
-DriverIdKHR                                          :: DriverId;
-ConformanceVersionKHR                                :: ConformanceVersion;
-PhysicalDeviceDriverPropertiesKHR                    :: PhysicalDeviceDriverProperties;
-ShaderFloatControlsIndependenceKHR                   :: ShaderFloatControlsIndependence;
-PhysicalDeviceFloatControlsPropertiesKHR             :: PhysicalDeviceFloatControlsProperties;
-ResolveModeFlagKHR                                   :: ResolveModeFlag;
-ResolveModeFlagsKHR                                  :: ResolveModeFlags;
-SubpassDescriptionDepthStencilResolveKHR             :: SubpassDescriptionDepthStencilResolve;
-PhysicalDeviceDepthStencilResolvePropertiesKHR       :: PhysicalDeviceDepthStencilResolveProperties;
-SemaphoreTypeKHR                                     :: SemaphoreType;
-SemaphoreWaitFlagKHR                                 :: SemaphoreWaitFlag;
-SemaphoreWaitFlagsKHR                                :: SemaphoreWaitFlags;
-PhysicalDeviceTimelineSemaphoreFeaturesKHR           :: PhysicalDeviceTimelineSemaphoreFeatures;
-PhysicalDeviceTimelineSemaphorePropertiesKHR         :: PhysicalDeviceTimelineSemaphoreProperties;
-SemaphoreTypeCreateInfoKHR                           :: SemaphoreTypeCreateInfo;
-TimelineSemaphoreSubmitInfoKHR                       :: TimelineSemaphoreSubmitInfo;
-SemaphoreWaitInfoKHR                                 :: SemaphoreWaitInfo;
-SemaphoreSignalInfoKHR                               :: SemaphoreSignalInfo;
-PhysicalDeviceVulkanMemoryModelFeaturesKHR           :: PhysicalDeviceVulkanMemoryModelFeatures;
-PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR :: PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
-AttachmentReferenceStencilLayoutKHR                  :: AttachmentReferenceStencilLayout;
-AttachmentDescriptionStencilLayoutKHR                :: AttachmentDescriptionStencilLayout;
-PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR :: PhysicalDeviceUniformBufferStandardLayoutFeatures;
-PhysicalDeviceBufferDeviceAddressFeaturesKHR         :: PhysicalDeviceBufferDeviceAddressFeatures;
-BufferDeviceAddressInfoKHR                           :: BufferDeviceAddressInfo;
-BufferOpaqueCaptureAddressCreateInfoKHR              :: BufferOpaqueCaptureAddressCreateInfo;
-MemoryOpaqueCaptureAddressAllocateInfoKHR            :: MemoryOpaqueCaptureAddressAllocateInfo;
-DeviceMemoryOpaqueCaptureAddressInfoKHR              :: DeviceMemoryOpaqueCaptureAddressInfo;
-PipelineStageFlags2KHR                               :: Flags64;
-PipelineStageFlag2KHR                                :: Flags64;
-AccessFlags2KHR                                      :: Flags64;
-AccessFlag2KHR                                       :: Flags64;
-SamplerReductionModeEXT                              :: SamplerReductionMode;
-SamplerReductionModeCreateInfoEXT                    :: SamplerReductionModeCreateInfo;
-PhysicalDeviceSamplerFilterMinmaxPropertiesEXT       :: PhysicalDeviceSamplerFilterMinmaxProperties;
-DescriptorBindingFlagEXT                             :: DescriptorBindingFlag;
-DescriptorBindingFlagsEXT                            :: DescriptorBindingFlags;
-DescriptorSetLayoutBindingFlagsCreateInfoEXT         :: DescriptorSetLayoutBindingFlagsCreateInfo;
-PhysicalDeviceDescriptorIndexingFeaturesEXT          :: PhysicalDeviceDescriptorIndexingFeatures;
-PhysicalDeviceDescriptorIndexingPropertiesEXT        :: PhysicalDeviceDescriptorIndexingProperties;
-DescriptorSetVariableDescriptorCountAllocateInfoEXT  :: DescriptorSetVariableDescriptorCountAllocateInfo;
-DescriptorSetVariableDescriptorCountLayoutSupportEXT :: DescriptorSetVariableDescriptorCountLayoutSupport;
-RayTracingShaderGroupTypeNV                          :: RayTracingShaderGroupTypeKHR;
-GeometryTypeNV                                       :: GeometryTypeKHR;
-AccelerationStructureTypeNV                          :: AccelerationStructureTypeKHR;
-CopyAccelerationStructureModeNV                      :: CopyAccelerationStructureModeKHR;
-GeometryFlagsNV                                      :: GeometryFlagsKHR;
-GeometryFlagNV                                       :: GeometryFlagKHR;
-GeometryInstanceFlagsNV                              :: GeometryInstanceFlagsKHR;
-GeometryInstanceFlagNV                               :: GeometryInstanceFlagKHR;
-BuildAccelerationStructureFlagsNV                    :: BuildAccelerationStructureFlagsKHR;
-BuildAccelerationStructureFlagNV                     :: BuildAccelerationStructureFlagKHR;
-TransformMatrixNV                                    :: TransformMatrixKHR;
-AabbPositionsNV                                      :: AabbPositionsKHR;
-AccelerationStructureInstanceNV                      :: AccelerationStructureInstanceKHR;
-QueryPoolCreateInfoINTEL                             :: QueryPoolPerformanceQueryCreateInfoINTEL;
-PhysicalDeviceScalarBlockLayoutFeaturesEXT           :: PhysicalDeviceScalarBlockLayoutFeatures;
-PhysicalDeviceBufferAddressFeaturesEXT               :: PhysicalDeviceBufferDeviceAddressFeaturesEXT;
-BufferDeviceAddressInfoEXT                           :: BufferDeviceAddressInfo;
-ImageStencilUsageCreateInfoEXT                       :: ImageStencilUsageCreateInfo;
-PhysicalDeviceHostQueryResetFeaturesEXT              :: PhysicalDeviceHostQueryResetFeatures;
+PhysicalDeviceVariablePointerFeatures                :: PhysicalDeviceVariablePointersFeatures
+PhysicalDeviceShaderDrawParameterFeatures            :: PhysicalDeviceShaderDrawParametersFeatures
+RenderPassMultiviewCreateInfoKHR                     :: RenderPassMultiviewCreateInfo
+PhysicalDeviceMultiviewFeaturesKHR                   :: PhysicalDeviceMultiviewFeatures
+PhysicalDeviceMultiviewPropertiesKHR                 :: PhysicalDeviceMultiviewProperties
+PhysicalDeviceFeatures2KHR                           :: PhysicalDeviceFeatures2
+PhysicalDeviceProperties2KHR                         :: PhysicalDeviceProperties2
+FormatProperties2KHR                                 :: FormatProperties2
+ImageFormatProperties2KHR                            :: ImageFormatProperties2
+PhysicalDeviceImageFormatInfo2KHR                    :: PhysicalDeviceImageFormatInfo2
+QueueFamilyProperties2KHR                            :: QueueFamilyProperties2
+PhysicalDeviceMemoryProperties2KHR                   :: PhysicalDeviceMemoryProperties2
+SparseImageFormatProperties2KHR                      :: SparseImageFormatProperties2
+PhysicalDeviceSparseImageFormatInfo2KHR              :: PhysicalDeviceSparseImageFormatInfo2
+PeerMemoryFeatureFlagsKHR                            :: PeerMemoryFeatureFlags
+PeerMemoryFeatureFlagKHR                             :: PeerMemoryFeatureFlag
+MemoryAllocateFlagsKHR                               :: MemoryAllocateFlags
+MemoryAllocateFlagKHR                                :: MemoryAllocateFlag
+MemoryAllocateFlagsInfoKHR                           :: MemoryAllocateFlagsInfo
+DeviceGroupRenderPassBeginInfoKHR                    :: DeviceGroupRenderPassBeginInfo
+DeviceGroupCommandBufferBeginInfoKHR                 :: DeviceGroupCommandBufferBeginInfo
+DeviceGroupSubmitInfoKHR                             :: DeviceGroupSubmitInfo
+DeviceGroupBindSparseInfoKHR                         :: DeviceGroupBindSparseInfo
+BindBufferMemoryDeviceGroupInfoKHR                   :: BindBufferMemoryDeviceGroupInfo
+BindImageMemoryDeviceGroupInfoKHR                    :: BindImageMemoryDeviceGroupInfo
+CommandPoolTrimFlagsKHR                              :: CommandPoolTrimFlags
+PhysicalDeviceGroupPropertiesKHR                     :: PhysicalDeviceGroupProperties
+DeviceGroupDeviceCreateInfoKHR                       :: DeviceGroupDeviceCreateInfo
+ExternalMemoryHandleTypeFlagsKHR                     :: ExternalMemoryHandleTypeFlags
+ExternalMemoryHandleTypeFlagKHR                      :: ExternalMemoryHandleTypeFlag
+ExternalMemoryFeatureFlagsKHR                        :: ExternalMemoryFeatureFlags
+ExternalMemoryFeatureFlagKHR                         :: ExternalMemoryFeatureFlag
+ExternalMemoryPropertiesKHR                          :: ExternalMemoryProperties
+PhysicalDeviceExternalImageFormatInfoKHR             :: PhysicalDeviceExternalImageFormatInfo
+ExternalImageFormatPropertiesKHR                     :: ExternalImageFormatProperties
+PhysicalDeviceExternalBufferInfoKHR                  :: PhysicalDeviceExternalBufferInfo
+ExternalBufferPropertiesKHR                          :: ExternalBufferProperties
+PhysicalDeviceIDPropertiesKHR                        :: PhysicalDeviceIDProperties
+ExternalMemoryImageCreateInfoKHR                     :: ExternalMemoryImageCreateInfo
+ExternalMemoryBufferCreateInfoKHR                    :: ExternalMemoryBufferCreateInfo
+ExportMemoryAllocateInfoKHR                          :: ExportMemoryAllocateInfo
+ExternalSemaphoreHandleTypeFlagsKHR                  :: ExternalSemaphoreHandleTypeFlags
+ExternalSemaphoreHandleTypeFlagKHR                   :: ExternalSemaphoreHandleTypeFlag
+ExternalSemaphoreFeatureFlagsKHR                     :: ExternalSemaphoreFeatureFlags
+ExternalSemaphoreFeatureFlagKHR                      :: ExternalSemaphoreFeatureFlag
+PhysicalDeviceExternalSemaphoreInfoKHR               :: PhysicalDeviceExternalSemaphoreInfo
+ExternalSemaphorePropertiesKHR                       :: ExternalSemaphoreProperties
+SemaphoreImportFlagsKHR                              :: SemaphoreImportFlags
+SemaphoreImportFlagKHR                               :: SemaphoreImportFlag
+ExportSemaphoreCreateInfoKHR                         :: ExportSemaphoreCreateInfo
+PhysicalDeviceShaderFloat16Int8FeaturesKHR           :: PhysicalDeviceShaderFloat16Int8Features
+PhysicalDeviceFloat16Int8FeaturesKHR                 :: PhysicalDeviceShaderFloat16Int8Features
+PhysicalDevice16BitStorageFeaturesKHR                :: PhysicalDevice16BitStorageFeatures
+DescriptorUpdateTemplateKHR                          :: DescriptorUpdateTemplate
+DescriptorUpdateTemplateTypeKHR                      :: DescriptorUpdateTemplateType
+DescriptorUpdateTemplateCreateFlagsKHR               :: DescriptorUpdateTemplateCreateFlags
+DescriptorUpdateTemplateEntryKHR                     :: DescriptorUpdateTemplateEntry
+DescriptorUpdateTemplateCreateInfoKHR                :: DescriptorUpdateTemplateCreateInfo
+PhysicalDeviceImagelessFramebufferFeaturesKHR        :: PhysicalDeviceImagelessFramebufferFeatures
+FramebufferAttachmentsCreateInfoKHR                  :: FramebufferAttachmentsCreateInfo
+FramebufferAttachmentImageInfoKHR                    :: FramebufferAttachmentImageInfo
+RenderPassAttachmentBeginInfoKHR                     :: RenderPassAttachmentBeginInfo
+RenderPassCreateInfo2KHR                             :: RenderPassCreateInfo2
+AttachmentDescription2KHR                            :: AttachmentDescription2
+AttachmentReference2KHR                              :: AttachmentReference2
+SubpassDescription2KHR                               :: SubpassDescription2
+SubpassDependency2KHR                                :: SubpassDependency2
+SubpassBeginInfoKHR                                  :: SubpassBeginInfo
+SubpassEndInfoKHR                                    :: SubpassEndInfo
+ExternalFenceHandleTypeFlagsKHR                      :: ExternalFenceHandleTypeFlags
+ExternalFenceHandleTypeFlagKHR                       :: ExternalFenceHandleTypeFlag
+ExternalFenceFeatureFlagsKHR                         :: ExternalFenceFeatureFlags
+ExternalFenceFeatureFlagKHR                          :: ExternalFenceFeatureFlag
+PhysicalDeviceExternalFenceInfoKHR                   :: PhysicalDeviceExternalFenceInfo
+ExternalFencePropertiesKHR                           :: ExternalFenceProperties
+FenceImportFlagsKHR                                  :: FenceImportFlags
+FenceImportFlagKHR                                   :: FenceImportFlag
+ExportFenceCreateInfoKHR                             :: ExportFenceCreateInfo
+PointClippingBehaviorKHR                             :: PointClippingBehavior
+TessellationDomainOriginKHR                          :: TessellationDomainOrigin
+PhysicalDevicePointClippingPropertiesKHR             :: PhysicalDevicePointClippingProperties
+RenderPassInputAttachmentAspectCreateInfoKHR         :: RenderPassInputAttachmentAspectCreateInfo
+InputAttachmentAspectReferenceKHR                    :: InputAttachmentAspectReference
+ImageViewUsageCreateInfoKHR                          :: ImageViewUsageCreateInfo
+PipelineTessellationDomainOriginStateCreateInfoKHR   :: PipelineTessellationDomainOriginStateCreateInfo
+PhysicalDeviceVariablePointerFeaturesKHR             :: PhysicalDeviceVariablePointersFeatures
+PhysicalDeviceVariablePointersFeaturesKHR            :: PhysicalDeviceVariablePointersFeatures
+MemoryDedicatedRequirementsKHR                       :: MemoryDedicatedRequirements
+MemoryDedicatedAllocateInfoKHR                       :: MemoryDedicatedAllocateInfo
+BufferMemoryRequirementsInfo2KHR                     :: BufferMemoryRequirementsInfo2
+ImageMemoryRequirementsInfo2KHR                      :: ImageMemoryRequirementsInfo2
+ImageSparseMemoryRequirementsInfo2KHR                :: ImageSparseMemoryRequirementsInfo2
+MemoryRequirements2KHR                               :: MemoryRequirements2
+SparseImageMemoryRequirements2KHR                    :: SparseImageMemoryRequirements2
+ImageFormatListCreateInfoKHR                         :: ImageFormatListCreateInfo
+SamplerYcbcrConversionKHR                            :: SamplerYcbcrConversion
+SamplerYcbcrModelConversionKHR                       :: SamplerYcbcrModelConversion
+SamplerYcbcrRangeKHR                                 :: SamplerYcbcrRange
+ChromaLocationKHR                                    :: ChromaLocation
+SamplerYcbcrConversionCreateInfoKHR                  :: SamplerYcbcrConversionCreateInfo
+SamplerYcbcrConversionInfoKHR                        :: SamplerYcbcrConversionInfo
+BindImagePlaneMemoryInfoKHR                          :: BindImagePlaneMemoryInfo
+ImagePlaneMemoryRequirementsInfoKHR                  :: ImagePlaneMemoryRequirementsInfo
+PhysicalDeviceSamplerYcbcrConversionFeaturesKHR      :: PhysicalDeviceSamplerYcbcrConversionFeatures
+SamplerYcbcrConversionImageFormatPropertiesKHR       :: SamplerYcbcrConversionImageFormatProperties
+BindBufferMemoryInfoKHR                              :: BindBufferMemoryInfo
+BindImageMemoryInfoKHR                               :: BindImageMemoryInfo
+PhysicalDeviceMaintenance3PropertiesKHR              :: PhysicalDeviceMaintenance3Properties
+DescriptorSetLayoutSupportKHR                        :: DescriptorSetLayoutSupport
+PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR :: PhysicalDeviceShaderSubgroupExtendedTypesFeatures
+PhysicalDevice8BitStorageFeaturesKHR                 :: PhysicalDevice8BitStorageFeatures
+PhysicalDeviceShaderAtomicInt64FeaturesKHR           :: PhysicalDeviceShaderAtomicInt64Features
+DriverIdKHR                                          :: DriverId
+ConformanceVersionKHR                                :: ConformanceVersion
+PhysicalDeviceDriverPropertiesKHR                    :: PhysicalDeviceDriverProperties
+ShaderFloatControlsIndependenceKHR                   :: ShaderFloatControlsIndependence
+PhysicalDeviceFloatControlsPropertiesKHR             :: PhysicalDeviceFloatControlsProperties
+ResolveModeFlagKHR                                   :: ResolveModeFlag
+ResolveModeFlagsKHR                                  :: ResolveModeFlags
+SubpassDescriptionDepthStencilResolveKHR             :: SubpassDescriptionDepthStencilResolve
+PhysicalDeviceDepthStencilResolvePropertiesKHR       :: PhysicalDeviceDepthStencilResolveProperties
+SemaphoreTypeKHR                                     :: SemaphoreType
+SemaphoreWaitFlagKHR                                 :: SemaphoreWaitFlag
+SemaphoreWaitFlagsKHR                                :: SemaphoreWaitFlags
+PhysicalDeviceTimelineSemaphoreFeaturesKHR           :: PhysicalDeviceTimelineSemaphoreFeatures
+PhysicalDeviceTimelineSemaphorePropertiesKHR         :: PhysicalDeviceTimelineSemaphoreProperties
+SemaphoreTypeCreateInfoKHR                           :: SemaphoreTypeCreateInfo
+TimelineSemaphoreSubmitInfoKHR                       :: TimelineSemaphoreSubmitInfo
+SemaphoreWaitInfoKHR                                 :: SemaphoreWaitInfo
+SemaphoreSignalInfoKHR                               :: SemaphoreSignalInfo
+PhysicalDeviceVulkanMemoryModelFeaturesKHR           :: PhysicalDeviceVulkanMemoryModelFeatures
+PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR :: PhysicalDeviceSeparateDepthStencilLayoutsFeatures
+AttachmentReferenceStencilLayoutKHR                  :: AttachmentReferenceStencilLayout
+AttachmentDescriptionStencilLayoutKHR                :: AttachmentDescriptionStencilLayout
+PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR :: PhysicalDeviceUniformBufferStandardLayoutFeatures
+PhysicalDeviceBufferDeviceAddressFeaturesKHR         :: PhysicalDeviceBufferDeviceAddressFeatures
+BufferDeviceAddressInfoKHR                           :: BufferDeviceAddressInfo
+BufferOpaqueCaptureAddressCreateInfoKHR              :: BufferOpaqueCaptureAddressCreateInfo
+MemoryOpaqueCaptureAddressAllocateInfoKHR            :: MemoryOpaqueCaptureAddressAllocateInfo
+DeviceMemoryOpaqueCaptureAddressInfoKHR              :: DeviceMemoryOpaqueCaptureAddressInfo
+PipelineStageFlags2KHR                               :: Flags64
+PipelineStageFlag2KHR                                :: Flags64
+AccessFlags2KHR                                      :: Flags64
+AccessFlag2KHR                                       :: Flags64
+SamplerReductionModeEXT                              :: SamplerReductionMode
+SamplerReductionModeCreateInfoEXT                    :: SamplerReductionModeCreateInfo
+PhysicalDeviceSamplerFilterMinmaxPropertiesEXT       :: PhysicalDeviceSamplerFilterMinmaxProperties
+DescriptorBindingFlagEXT                             :: DescriptorBindingFlag
+DescriptorBindingFlagsEXT                            :: DescriptorBindingFlags
+DescriptorSetLayoutBindingFlagsCreateInfoEXT         :: DescriptorSetLayoutBindingFlagsCreateInfo
+PhysicalDeviceDescriptorIndexingFeaturesEXT          :: PhysicalDeviceDescriptorIndexingFeatures
+PhysicalDeviceDescriptorIndexingPropertiesEXT        :: PhysicalDeviceDescriptorIndexingProperties
+DescriptorSetVariableDescriptorCountAllocateInfoEXT  :: DescriptorSetVariableDescriptorCountAllocateInfo
+DescriptorSetVariableDescriptorCountLayoutSupportEXT :: DescriptorSetVariableDescriptorCountLayoutSupport
+RayTracingShaderGroupTypeNV                          :: RayTracingShaderGroupTypeKHR
+GeometryTypeNV                                       :: GeometryTypeKHR
+AccelerationStructureTypeNV                          :: AccelerationStructureTypeKHR
+CopyAccelerationStructureModeNV                      :: CopyAccelerationStructureModeKHR
+GeometryFlagsNV                                      :: GeometryFlagsKHR
+GeometryFlagNV                                       :: GeometryFlagKHR
+GeometryInstanceFlagsNV                              :: GeometryInstanceFlagsKHR
+GeometryInstanceFlagNV                               :: GeometryInstanceFlagKHR
+BuildAccelerationStructureFlagsNV                    :: BuildAccelerationStructureFlagsKHR
+BuildAccelerationStructureFlagNV                     :: BuildAccelerationStructureFlagKHR
+TransformMatrixNV                                    :: TransformMatrixKHR
+AabbPositionsNV                                      :: AabbPositionsKHR
+AccelerationStructureInstanceNV                      :: AccelerationStructureInstanceKHR
+QueryPoolCreateInfoINTEL                             :: QueryPoolPerformanceQueryCreateInfoINTEL
+PhysicalDeviceScalarBlockLayoutFeaturesEXT           :: PhysicalDeviceScalarBlockLayoutFeatures
+PhysicalDeviceBufferAddressFeaturesEXT               :: PhysicalDeviceBufferDeviceAddressFeaturesEXT
+BufferDeviceAddressInfoEXT                           :: BufferDeviceAddressInfo
+ImageStencilUsageCreateInfoEXT                       :: ImageStencilUsageCreateInfo
+PhysicalDeviceHostQueryResetFeaturesEXT              :: PhysicalDeviceHostQueryResetFeatures
 
 

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.