Browse Source

Update vulkan generator tool

gingerBill 4 years ago
parent
commit
36151d227a

+ 68 - 73
vendor/vulkan/_gen/create_vulkan_odin_wrapper.py

@@ -163,12 +163,12 @@ def parse_handles_def(f):
 
 
     max_len = max(len(h) for h in handles)
     max_len = max(len(h) for h in handles)
     for h in handles:
     for h in handles:
-        f.write("{} :: distinct Handle;\n".format(h.ljust(max_len)))
+        f.write("{} :: distinct Handle\n".format(h.ljust(max_len)))
 
 
     handles_non_dispatchable = [h for h in re.findall(r"VK_DEFINE_NON_DISPATCHABLE_HANDLE\(Vk(\w+)\)", src, re.S)]
     handles_non_dispatchable = [h for h in re.findall(r"VK_DEFINE_NON_DISPATCHABLE_HANDLE\(Vk(\w+)\)", src, re.S)]
     max_len = max(len(h) for h in handles_non_dispatchable)
     max_len = max(len(h) for h in handles_non_dispatchable)
     for h in handles_non_dispatchable:
     for h in handles_non_dispatchable:
-        f.write("{} :: distinct NonDispatchableHandle;\n".format(h.ljust(max_len)))
+        f.write("{} :: distinct NonDispatchableHandle\n".format(h.ljust(max_len)))
 
 
 
 
 flags_defs = set()
 flags_defs = set()
@@ -222,7 +222,7 @@ def fix_enum_value(value, prefix, suffix, is_flag_bit):
     return token
     return token
 
 
 def parse_constants(f):
 def parse_constants(f):
-    f.write("// General Constants\n");
+    f.write("// General Constants\n")
     all_data = re.findall(r"#define VK_(\w+)\s*(.*?)U?\n", src, re.S)
     all_data = re.findall(r"#define VK_(\w+)\s*(.*?)U?\n", src, re.S)
     allowed_names = (
     allowed_names = (
         "HEADER_VERSION",
         "HEADER_VERSION",
@@ -232,13 +232,13 @@ def parse_constants(f):
     allowed_data = [nv for nv in all_data if nv[0] in allowed_names]
     allowed_data = [nv for nv in all_data if nv[0] in allowed_names]
     max_len = max(len(name) for name, value in allowed_data)
     max_len = max(len(name) for name, value in allowed_data)
     for name, value in allowed_data:
     for name, value in allowed_data:
-        f.write("{}{} :: {};\n".format(name, "".rjust(max_len-len(name)), value))
+        f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
 
 
-    f.write("\n// Vendor Constants\n");
+    f.write("\n// Vendor Constants\n")
     data = re.findall(r"#define VK_((?:"+'|'.join(ext_suffixes)+r")\w+)\s*(.*?)\n", src, re.S)
     data = re.findall(r"#define VK_((?:"+'|'.join(ext_suffixes)+r")\w+)\s*(.*?)\n", src, re.S)
     max_len = max(len(name) for name, value in data)
     max_len = max(len(name) for name, value in data)
     for name, value in data:
     for name, value in data:
-        f.write("{}{} :: {};\n".format(name, "".rjust(max_len-len(name)), value))
+        f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
     f.write("\n")
     f.write("\n")
 
 
 
 
@@ -258,7 +258,7 @@ def parse_enums(f):
             flags_name = enum_name.replace("FlagBits", "Flags")
             flags_name = enum_name.replace("FlagBits", "Flags")
             enum_name = enum_name.replace("FlagBits", "Flag")
             enum_name = enum_name.replace("FlagBits", "Flag")
             generated_flags.add(flags_name)
             generated_flags.add(flags_name)
-            f.write("{} :: distinct bit_set[{}; Flags];\n".format(flags_name, enum_name))
+            f.write("{} :: distinct bit_set[{}; Flags]\n".format(flags_name, enum_name))
 
 
 
 
         if is_flag_bit:
         if is_flag_bit:
@@ -344,9 +344,9 @@ def parse_enums(f):
                         used_flags.append('.'+flags[i])
                         used_flags.append('.'+flags[i])
                     else:
                     else:
                         used_flags.append('{}({})'.format(enum_name, i))
                         used_flags.append('{}({})'.format(enum_name, i))
-            s = "{enum_name}s_{n} :: {enum_name}s{{".format(enum_name=enum_name, n=n);
+            s = "{enum_name}s_{n} :: {enum_name}s{{".format(enum_name=enum_name, n=n)
             s += ', '.join(used_flags)
             s += ', '.join(used_flags)
-            s += "};\n"
+            s += "}\n"
             f.write(s)
             f.write(s)
 
 
         if len(groups) > 0:
         if len(groups) > 0:
@@ -358,8 +358,8 @@ def parse_enums(f):
     max_len = max(len(flag) for flag in unused_flags)
     max_len = max(len(flag) for flag in unused_flags)
     for flag in unused_flags:
     for flag in unused_flags:
         flag_name = flag.replace("Flags", "Flag")
         flag_name = flag.replace("Flags", "Flag")
-        f.write("{} :: distinct bit_set[{}; Flags];\n".format(flag.ljust(max_len), flag_name))
-        f.write("{} :: enum u32 {{}};\n".format(flag_name.ljust(max_len)))
+        f.write("{} :: distinct bit_set[{}; Flags]\n".format(flag.ljust(max_len), flag_name))
+        f.write("{} :: enum u32 {{}}\n".format(flag_name.ljust(max_len)))
 
 
 
 
 
 
@@ -410,7 +410,7 @@ def parse_structs(f):
     max_len = max([len(n) for n, _ in aliases] + [0])
     max_len = max([len(n) for n, _ in aliases] + [0])
     for n, t in aliases:
     for n, t in aliases:
         k = max_len
         k = max_len
-        f.write("{} :: {};\n".format(n.ljust(k), t))
+        f.write("{} :: {}\n".format(n.ljust(k), t))
 
 
 
 
 
 
@@ -437,13 +437,8 @@ def parse_procedures(f):
     max_len = max(len(n) for n, t in ff)
     max_len = max(len(n) for n, t in ff)
 
 
     f.write("// Procedure Types\n\n");
     f.write("// Procedure Types\n\n");
-    f.write("when ODIN_OS == \"windows\" {\n");
     for n, t in ff:
     for n, t in ff:
-        f.write("\t{} :: #type {};\n".format(n.ljust(max_len), t.replace('"c"', '"stdcall"')))
-    f.write("} else {\n");
-    for n, t in ff:
-        f.write("\t{} :: #type {};\n".format(n.ljust(max_len), t))
-    f.write("}\n\n");
+        f.write("{} :: #type {}\n".format(n.ljust(max_len), t.replace('"c"', '"system"')))
 
 
 def group_functions(f):
 def group_functions(f):
     data = re.findall(r"typedef (\w+\*?) \(\w+ \*(\w+)\)\((.+?)\);", src, re.S)
     data = re.findall(r"typedef (\w+\*?) \(\w+ \*(\w+)\)\((.+?)\);", src, re.S)
@@ -471,7 +466,7 @@ def group_functions(f):
         max_len = max(len(name) for name, _ in group_lines)
         max_len = max(len(name) for name, _ in group_lines)
         for name, vk_name in group_lines:
         for name, vk_name in group_lines:
             type_str = procedure_map[vk_name]
             type_str = procedure_map[vk_name]
-            f.write('{}: {};\n'.format(remove_prefix(name, "Proc"), name.rjust(max_len)))
+            f.write('{}: {}\n'.format(remove_prefix(name, "Proc"), name.rjust(max_len)))
         f.write("\n")
         f.write("\n")
 
 
     f.write("load_proc_addresses :: proc(set_proc_address: SetProcAddressType) {\n")
     f.write("load_proc_addresses :: proc(set_proc_address: SetProcAddressType) {\n")
@@ -480,7 +475,7 @@ def group_functions(f):
         max_len = max(len(name) for name, _ in group_lines)
         max_len = max(len(name) for name, _ in group_lines)
         for name, vk_name in group_lines:
         for name, vk_name in group_lines:
             k = max_len - len(name)
             k = max_len - len(name)
-            f.write('\tset_proc_address(&{}, {}"vk{}");\n'.format(
+            f.write('\tset_proc_address(&{}, {}"vk{}")\n'.format(
                 remove_prefix(name, 'Proc'),
                 remove_prefix(name, 'Proc'),
                 "".ljust(k),
                 "".ljust(k),
                 remove_prefix(vk_name, 'Proc'),
                 remove_prefix(vk_name, 'Proc'),
@@ -503,54 +498,54 @@ import "core:c"
 with open("../core.odin", 'w', encoding='utf-8') as f:
 with open("../core.odin", 'w', encoding='utf-8') as f:
     f.write(BASE)
     f.write(BASE)
     f.write("""
     f.write("""
-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 {
 MAKE_VERSION :: proc(major, minor, patch: u32) -> u32 {
-    return (major<<22) | (minor<<12) | (patch);
+    return (major<<22) | (minor<<12) | (patch)
 }
 }
 
 
 // Base types
 // 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
 // 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
 
 
 """[1::])
 """[1::])
     parse_constants(f)
     parse_constants(f)
@@ -568,24 +563,24 @@ MAX_GLOBAL_PRIORITY_SIZE_EXT  :: 16;
 when ODIN_OS == "windows" {
 when ODIN_OS == "windows" {
 \timport win32 "core:sys/windows"
 \timport win32 "core:sys/windows"
 
 
-\tHINSTANCE           :: win32.HINSTANCE;
-\tHWND                :: win32.HWND;
-\tHMONITOR            :: win32.HMONITOR;
-\tHANDLE              :: win32.HANDLE;
-\tLPCWSTR             :: win32.LPCWSTR;
-\tSECURITY_ATTRIBUTES :: win32.SECURITY_ATTRIBUTES;
-\tDWORD               :: win32.DWORD;
-\tLONG                :: win32.LONG;
-\tLUID                :: win32.LUID;
+\tHINSTANCE           :: win32.HINSTANCE
+\tHWND                :: win32.HWND
+\tHMONITOR            :: win32.HMONITOR
+\tHANDLE              :: win32.HANDLE
+\tLPCWSTR             :: win32.LPCWSTR
+\tSECURITY_ATTRIBUTES :: win32.SECURITY_ATTRIBUTES
+\tDWORD               :: win32.DWORD
+\tLONG                :: win32.LONG
+\tLUID                :: win32.LUID
 } else {
 } else {
-\tHINSTANCE           :: distinct rawptr;
-\tHWND                :: distinct rawptr;
-\tHMONITOR            :: distinct rawptr;
-\tHANDLE              :: distinct rawptr;
-\tLPCWSTR             :: ^u16;
-\tSECURITY_ATTRIBUTES :: struct {};
-\tDWORD               :: u32;
-\tLONG                :: c.long;
+\tHINSTANCE           :: distinct rawptr
+\tHWND                :: distinct rawptr
+\tHMONITOR            :: distinct rawptr
+\tHANDLE              :: distinct rawptr
+\tLPCWSTR             :: ^u16
+\tSECURITY_ATTRIBUTES :: struct {}
+\tDWORD               :: u32
+\tLONG                :: c.long
 \tLUID :: struct {
 \tLUID :: struct {
 \t\tLowPart:  DWORD,
 \t\tLowPart:  DWORD,
 \t\tHighPart: LONG,
 \t\tHighPart: LONG,

+ 82 - 5
vendor/vulkan/_gen/vulkan_core.h

@@ -72,7 +72,7 @@ extern "C" {
 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
 
 
 // Version of this file
 // Version of this file
-#define VK_HEADER_VERSION 189
+#define VK_HEADER_VERSION 191
 
 
 // Complete version of this file
 // Complete version of this file
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
@@ -754,6 +754,8 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
@@ -824,6 +826,7 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
     VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
     VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
     VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
     VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
     VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
     VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
@@ -843,6 +846,7 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001,
     VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -2125,10 +2129,6 @@ typedef enum VkImageViewCreateFlagBits {
     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkImageViewCreateFlagBits;
 } VkImageViewCreateFlagBits;
 typedef VkFlags VkImageViewCreateFlags;
 typedef VkFlags VkImageViewCreateFlags;
-
-typedef enum VkShaderModuleCreateFlagBits {
-    VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkShaderModuleCreateFlagBits;
 typedef VkFlags VkShaderModuleCreateFlags;
 typedef VkFlags VkShaderModuleCreateFlags;
 
 
 typedef enum VkPipelineCacheCreateFlagBits {
 typedef enum VkPipelineCacheCreateFlagBits {
@@ -7867,6 +7867,52 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR
 #endif
 #endif
 
 
 
 
+#define VK_KHR_shader_integer_dot_product 1
+#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
+#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
+typedef struct VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           shaderIntegerDotProduct;
+} VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
+
+typedef struct VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           integerDotProduct8BitUnsignedAccelerated;
+    VkBool32           integerDotProduct8BitSignedAccelerated;
+    VkBool32           integerDotProduct8BitMixedSignednessAccelerated;
+    VkBool32           integerDotProduct4x8BitPackedUnsignedAccelerated;
+    VkBool32           integerDotProduct4x8BitPackedSignedAccelerated;
+    VkBool32           integerDotProduct4x8BitPackedMixedSignednessAccelerated;
+    VkBool32           integerDotProduct16BitUnsignedAccelerated;
+    VkBool32           integerDotProduct16BitSignedAccelerated;
+    VkBool32           integerDotProduct16BitMixedSignednessAccelerated;
+    VkBool32           integerDotProduct32BitUnsignedAccelerated;
+    VkBool32           integerDotProduct32BitSignedAccelerated;
+    VkBool32           integerDotProduct32BitMixedSignednessAccelerated;
+    VkBool32           integerDotProduct64BitUnsignedAccelerated;
+    VkBool32           integerDotProduct64BitSignedAccelerated;
+    VkBool32           integerDotProduct64BitMixedSignednessAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating8BitSignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating16BitSignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating32BitSignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating64BitSignedAccelerated;
+    VkBool32           integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
+} VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
+
+
+
 #define VK_KHR_pipeline_library 1
 #define VK_KHR_pipeline_library 1
 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
 #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
 #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
@@ -12454,6 +12500,18 @@ typedef struct VkPhysicalDeviceDrmPropertiesEXT {
 
 
 
 
 
 
+#define VK_EXT_primitive_topology_list_restart 1
+#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
+#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
+typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           primitiveTopologyListRestart;
+    VkBool32           primitiveTopologyPatchListRestart;
+} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
+
+
+
 #define VK_HUAWEI_subpass_shading 1
 #define VK_HUAWEI_subpass_shading 1
 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
@@ -12675,6 +12733,25 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
 #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
 
 
 
 
+#define VK_EXT_pageable_device_local_memory 1
+#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
+#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
+typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           pageableDeviceLocalMemory;
+} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
+
+typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice       device, VkDeviceMemory memory, float          priority);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
+    VkDevice                                    device,
+    VkDeviceMemory                              memory,
+    float                                       priority);
+#endif
+
+
 #define VK_KHR_acceleration_structure 1
 #define VK_KHR_acceleration_structure 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 12
 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 12

+ 10 - 1
vendor/vulkan/core.odin

@@ -54,7 +54,7 @@ MAX_QUEUE_FAMILY_EXTERNAL     :: ~u32(0)-1
 MAX_GLOBAL_PRIORITY_SIZE_EXT  :: 16
 MAX_GLOBAL_PRIORITY_SIZE_EXT  :: 16
 
 
 // General Constants
 // General Constants
-HEADER_VERSION       :: 189
+HEADER_VERSION       :: 191
 MAX_DRIVER_NAME_SIZE :: 256
 MAX_DRIVER_NAME_SIZE :: 256
 MAX_DRIVER_INFO_SIZE :: 256
 MAX_DRIVER_INFO_SIZE :: 256
 
 
@@ -245,6 +245,9 @@ KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME             :: "VK_KHR_deferred_host
 KHR_pipeline_executable_properties                      :: 1
 KHR_pipeline_executable_properties                      :: 1
 KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION         :: 1
 KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION         :: 1
 KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME       :: "VK_KHR_pipeline_executable_properties"
 KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME       :: "VK_KHR_pipeline_executable_properties"
+KHR_shader_integer_dot_product                          :: 1
+KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION             :: 1
+KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME           :: "VK_KHR_shader_integer_dot_product"
 KHR_pipeline_library                                    :: 1
 KHR_pipeline_library                                    :: 1
 KHR_PIPELINE_LIBRARY_SPEC_VERSION                       :: 1
 KHR_PIPELINE_LIBRARY_SPEC_VERSION                       :: 1
 KHR_PIPELINE_LIBRARY_EXTENSION_NAME                     :: "VK_KHR_pipeline_library"
 KHR_PIPELINE_LIBRARY_EXTENSION_NAME                     :: "VK_KHR_pipeline_library"
@@ -668,6 +671,9 @@ EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME           :: "VK_EXT_vertex_input_
 EXT_physical_device_drm                                 :: 1
 EXT_physical_device_drm                                 :: 1
 EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION                    :: 1
 EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION                    :: 1
 EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME                  :: "VK_EXT_physical_device_drm"
 EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME                  :: "VK_EXT_physical_device_drm"
+EXT_primitive_topology_list_restart                     :: 1
+EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION        :: 1
+EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME      :: "VK_EXT_primitive_topology_list_restart"
 NV_external_memory_rdma                                 :: 1
 NV_external_memory_rdma                                 :: 1
 NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION                    :: 1
 NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION                    :: 1
 NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME                  :: "VK_NV_external_memory_rdma"
 NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME                  :: "VK_NV_external_memory_rdma"
@@ -686,6 +692,9 @@ EXT_MULTI_DRAW_EXTENSION_NAME                           :: "VK_EXT_multi_draw"
 EXT_load_store_op_none                                  :: 1
 EXT_load_store_op_none                                  :: 1
 EXT_LOAD_STORE_OP_NONE_SPEC_VERSION                     :: 1
 EXT_LOAD_STORE_OP_NONE_SPEC_VERSION                     :: 1
 EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME                   :: "VK_EXT_load_store_op_none"
 EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME                   :: "VK_EXT_load_store_op_none"
+EXT_pageable_device_local_memory                        :: 1
+EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION           :: 1
+EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME         :: "VK_EXT_pageable_device_local_memory"
 KHR_acceleration_structure                              :: 1
 KHR_acceleration_structure                              :: 1
 KHR_ACCELERATION_STRUCTURE_SPEC_VERSION                 :: 12
 KHR_ACCELERATION_STRUCTURE_SPEC_VERSION                 :: 12
 KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME               :: "VK_KHR_acceleration_structure"
 KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME               :: "VK_KHR_acceleration_structure"

+ 68 - 66
vendor/vulkan/enums.odin

@@ -537,6 +537,8 @@ StructureType :: enum c.int {
 	PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV             = 1000277007,
 	PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV             = 1000277007,
 	PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV            = 1000278000,
 	PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV            = 1000278000,
 	COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV               = 1000278001,
 	COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV               = 1000278001,
+	PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR           = 1000280000,
+	PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR         = 1000280001,
 	PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT               = 1000281000,
 	PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT               = 1000281000,
 	PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT             = 1000281001,
 	PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT             = 1000281001,
 	COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM        = 1000282000,
 	COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM        = 1000282000,
@@ -603,6 +605,7 @@ StructureType :: enum c.int {
 	VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT                            = 1000352001,
 	VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT                            = 1000352001,
 	VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT                          = 1000352002,
 	VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT                          = 1000352002,
 	PHYSICAL_DEVICE_DRM_PROPERTIES_EXT                                = 1000353000,
 	PHYSICAL_DEVICE_DRM_PROPERTIES_EXT                                = 1000353000,
+	PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT      = 1000356000,
 	IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA                          = 1000364000,
 	IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA                          = 1000364000,
 	MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA                           = 1000364001,
 	MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA                           = 1000364001,
 	MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA                             = 1000364002,
 	MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA                             = 1000364002,
@@ -622,6 +625,7 @@ StructureType :: enum c.int {
 	QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT                       = 1000388001,
 	QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT                       = 1000388001,
 	PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT                           = 1000392000,
 	PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT                           = 1000392000,
 	PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT                         = 1000392001,
 	PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT                         = 1000392001,
+	PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT         = 1000412000,
 	PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES                         = PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
 	PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES                         = PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
 	PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES                    = PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
 	PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES                    = PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
 	DEBUG_REPORT_CREATE_INFO_EXT                                      = DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
 	DEBUG_REPORT_CREATE_INFO_EXT                                      = DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -1793,10 +1797,6 @@ ImageViewCreateFlag :: enum Flags {
 	FRAGMENT_DENSITY_MAP_DEFERRED_EXT = 1,
 	FRAGMENT_DENSITY_MAP_DEFERRED_EXT = 1,
 }
 }
 
 
-ShaderModuleCreateFlags :: distinct bit_set[ShaderModuleCreateFlag; Flags]
-ShaderModuleCreateFlag :: enum Flags {
-}
-
 PipelineCacheCreateFlags :: distinct bit_set[PipelineCacheCreateFlag; Flags]
 PipelineCacheCreateFlags :: distinct bit_set[PipelineCacheCreateFlag; Flags]
 PipelineCacheCreateFlag :: enum Flags {
 PipelineCacheCreateFlag :: enum Flags {
 	EXTERNALLY_SYNCHRONIZED_EXT = 0,
 	EXTERNALLY_SYNCHRONIZED_EXT = 0,
@@ -2866,85 +2866,87 @@ FullScreenExclusiveEXT :: enum c.int {
 	APPLICATION_CONTROLLED = 3,
 	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 {}
+PipelineViewportSwizzleStateCreateFlagsNV            :: distinct bit_set[PipelineViewportSwizzleStateCreateFlagNV; Flags]
+PipelineViewportSwizzleStateCreateFlagNV             :: enum u32 {}
+ShaderModuleCreateFlags                              :: distinct bit_set[ShaderModuleCreateFlag; Flags]
+ShaderModuleCreateFlag                               :: enum u32 {}
+HeadlessSurfaceCreateFlagsEXT                        :: distinct bit_set[HeadlessSurfaceCreateFlagEXT; Flags]
+HeadlessSurfaceCreateFlagEXT                         :: enum u32 {}
 PipelineInputAssemblyStateCreateFlags                :: distinct bit_set[PipelineInputAssemblyStateCreateFlag; Flags]
 PipelineInputAssemblyStateCreateFlags                :: distinct bit_set[PipelineInputAssemblyStateCreateFlag; Flags]
 PipelineInputAssemblyStateCreateFlag                 :: enum u32 {}
 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 {}
+PipelineRasterizationDepthClipStateCreateFlagsEXT    :: distinct bit_set[PipelineRasterizationDepthClipStateCreateFlagEXT; Flags]
+PipelineRasterizationDepthClipStateCreateFlagEXT     :: enum u32 {}
+IOSSurfaceCreateFlagsMVK                             :: distinct bit_set[IOSSurfaceCreateFlagMVK; Flags]
+IOSSurfaceCreateFlagMVK                              :: enum u32 {}
+DeviceCreateFlags                                    :: distinct bit_set[DeviceCreateFlag; Flags]
+DeviceCreateFlag                                     :: enum u32 {}
+ValidationCacheCreateFlagsEXT                        :: distinct bit_set[ValidationCacheCreateFlagEXT; Flags]
+ValidationCacheCreateFlagEXT                         :: enum u32 {}
 QueryPoolCreateFlags                                 :: distinct bit_set[QueryPoolCreateFlag; Flags]
 QueryPoolCreateFlags                                 :: distinct bit_set[QueryPoolCreateFlag; Flags]
 QueryPoolCreateFlag                                  :: enum u32 {}
 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]
 CommandPoolTrimFlags                                 :: distinct bit_set[CommandPoolTrimFlag; Flags]
 CommandPoolTrimFlag                                  :: enum u32 {}
 CommandPoolTrimFlag                                  :: enum u32 {}
-DescriptorUpdateTemplateCreateFlags                  :: distinct bit_set[DescriptorUpdateTemplateCreateFlag; Flags]
-DescriptorUpdateTemplateCreateFlag                   :: enum u32 {}
+SemaphoreCreateFlags                                 :: distinct bit_set[SemaphoreCreateFlag; Flags]
+SemaphoreCreateFlag                                  :: enum u32 {}
+DebugUtilsMessengerCreateFlagsEXT                    :: distinct bit_set[DebugUtilsMessengerCreateFlagEXT; Flags]
+DebugUtilsMessengerCreateFlagEXT                     :: enum u32 {}
+PipelineVertexInputStateCreateFlags                  :: distinct bit_set[PipelineVertexInputStateCreateFlag; Flags]
+PipelineVertexInputStateCreateFlag                   :: enum u32 {}
+PipelineLayoutCreateFlags                            :: distinct bit_set[PipelineLayoutCreateFlag; Flags]
+PipelineLayoutCreateFlag                             :: enum u32 {}
 PipelineColorBlendStateCreateFlags                   :: distinct bit_set[PipelineColorBlendStateCreateFlag; Flags]
 PipelineColorBlendStateCreateFlags                   :: distinct bit_set[PipelineColorBlendStateCreateFlag; Flags]
 PipelineColorBlendStateCreateFlag                    :: enum u32 {}
 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 {}
+BufferViewCreateFlags                                :: distinct bit_set[BufferViewCreateFlag; Flags]
+BufferViewCreateFlag                                 :: enum u32 {}
+DeviceMemoryReportFlagsEXT                           :: distinct bit_set[DeviceMemoryReportFlagEXT; Flags]
+DeviceMemoryReportFlagEXT                            :: enum u32 {}
+AccelerationStructureMotionInfoFlagsNV               :: distinct bit_set[AccelerationStructureMotionInfoFlagNV; Flags]
+AccelerationStructureMotionInfoFlagNV                :: enum u32 {}
+MetalSurfaceCreateFlagsEXT                           :: distinct bit_set[MetalSurfaceCreateFlagEXT; Flags]
+MetalSurfaceCreateFlagEXT                            :: enum u32 {}
+PipelineCoverageModulationStateCreateFlagsNV         :: distinct bit_set[PipelineCoverageModulationStateCreateFlagNV; Flags]
+PipelineCoverageModulationStateCreateFlagNV          :: enum u32 {}
+DisplaySurfaceCreateFlagsKHR                         :: distinct bit_set[DisplaySurfaceCreateFlagKHR; Flags]
+DisplaySurfaceCreateFlagKHR                          :: enum u32 {}
 PipelineRasterizationConservativeStateCreateFlagsEXT :: distinct bit_set[PipelineRasterizationConservativeStateCreateFlagEXT; Flags]
 PipelineRasterizationConservativeStateCreateFlagsEXT :: distinct bit_set[PipelineRasterizationConservativeStateCreateFlagEXT; Flags]
 PipelineRasterizationConservativeStateCreateFlagEXT  :: enum u32 {}
 PipelineRasterizationConservativeStateCreateFlagEXT  :: enum u32 {}
-PipelineRasterizationDepthClipStateCreateFlagsEXT    :: distinct bit_set[PipelineRasterizationDepthClipStateCreateFlagEXT; Flags]
-PipelineRasterizationDepthClipStateCreateFlagEXT     :: enum u32 {}
-PipelineRasterizationStateStreamCreateFlagsEXT       :: distinct bit_set[PipelineRasterizationStateStreamCreateFlagEXT; Flags]
-PipelineRasterizationStateStreamCreateFlagEXT        :: enum u32 {}
+PipelineCoverageToColorStateCreateFlagsNV            :: distinct bit_set[PipelineCoverageToColorStateCreateFlagNV; Flags]
+PipelineCoverageToColorStateCreateFlagNV             :: enum u32 {}
 DebugUtilsMessengerCallbackDataFlagsEXT              :: distinct bit_set[DebugUtilsMessengerCallbackDataFlagEXT; Flags]
 DebugUtilsMessengerCallbackDataFlagsEXT              :: distinct bit_set[DebugUtilsMessengerCallbackDataFlagEXT; Flags]
 DebugUtilsMessengerCallbackDataFlagEXT               :: enum u32 {}
 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 {}
+PipelineMultisampleStateCreateFlags                  :: distinct bit_set[PipelineMultisampleStateCreateFlag; Flags]
+PipelineMultisampleStateCreateFlag                   :: enum u32 {}
+PipelineRasterizationStateCreateFlags                :: distinct bit_set[PipelineRasterizationStateCreateFlag; Flags]
+PipelineRasterizationStateCreateFlag                 :: enum u32 {}
+DisplayModeCreateFlagsKHR                            :: distinct bit_set[DisplayModeCreateFlagKHR; Flags]
+DisplayModeCreateFlagKHR                             :: enum u32 {}
+PipelineViewportStateCreateFlags                     :: distinct bit_set[PipelineViewportStateCreateFlag; Flags]
+PipelineViewportStateCreateFlag                      :: enum u32 {}
 MacOSSurfaceCreateFlagsMVK                           :: distinct bit_set[MacOSSurfaceCreateFlagMVK; Flags]
 MacOSSurfaceCreateFlagsMVK                           :: distinct bit_set[MacOSSurfaceCreateFlagMVK; Flags]
 MacOSSurfaceCreateFlagMVK                            :: enum u32 {}
 MacOSSurfaceCreateFlagMVK                            :: enum u32 {}
-PipelineCoverageToColorStateCreateFlagsNV            :: distinct bit_set[PipelineCoverageToColorStateCreateFlagNV; Flags]
-PipelineCoverageToColorStateCreateFlagNV             :: enum u32 {}
-ValidationCacheCreateFlagsEXT                        :: distinct bit_set[ValidationCacheCreateFlagEXT; Flags]
-ValidationCacheCreateFlagEXT                         :: enum u32 {}
+PipelineDiscardRectangleStateCreateFlagsEXT          :: distinct bit_set[PipelineDiscardRectangleStateCreateFlagEXT; Flags]
+PipelineDiscardRectangleStateCreateFlagEXT           :: enum u32 {}
+PipelineDepthStencilStateCreateFlags                 :: distinct bit_set[PipelineDepthStencilStateCreateFlag; Flags]
+PipelineDepthStencilStateCreateFlag                  :: enum u32 {}
 Win32SurfaceCreateFlagsKHR                           :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags]
 Win32SurfaceCreateFlagsKHR                           :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags]
 Win32SurfaceCreateFlagKHR                            :: enum u32 {}
 Win32SurfaceCreateFlagKHR                            :: enum u32 {}
-PipelineTessellationStateCreateFlags                 :: distinct bit_set[PipelineTessellationStateCreateFlag; Flags]
-PipelineTessellationStateCreateFlag                  :: enum u32 {}
 DescriptorPoolResetFlags                             :: distinct bit_set[DescriptorPoolResetFlag; Flags]
 DescriptorPoolResetFlags                             :: distinct bit_set[DescriptorPoolResetFlag; Flags]
 DescriptorPoolResetFlag                              :: enum u32 {}
 DescriptorPoolResetFlag                              :: enum u32 {}
-AccelerationStructureMotionInfoFlagsNV               :: distinct bit_set[AccelerationStructureMotionInfoFlagNV; Flags]
-AccelerationStructureMotionInfoFlagNV                :: enum u32 {}
+PipelineRasterizationStateStreamCreateFlagsEXT       :: distinct bit_set[PipelineRasterizationStateStreamCreateFlagEXT; Flags]
+PipelineRasterizationStateStreamCreateFlagEXT        :: enum u32 {}
+PipelineTessellationStateCreateFlags                 :: distinct bit_set[PipelineTessellationStateCreateFlag; Flags]
+PipelineTessellationStateCreateFlag                  :: enum u32 {}
+MemoryMapFlags                                       :: distinct bit_set[MemoryMapFlag; Flags]
+MemoryMapFlag                                        :: enum u32 {}
+InstanceCreateFlags                                  :: distinct bit_set[InstanceCreateFlag; Flags]
+InstanceCreateFlag                                   :: enum u32 {}
+DescriptorUpdateTemplateCreateFlags                  :: distinct bit_set[DescriptorUpdateTemplateCreateFlag; Flags]
+DescriptorUpdateTemplateCreateFlag                   :: enum u32 {}
+PipelineDynamicStateCreateFlags                      :: distinct bit_set[PipelineDynamicStateCreateFlag; Flags]
+PipelineDynamicStateCreateFlag                       :: enum u32 {}
+AccelerationStructureMotionInstanceFlagsNV           :: distinct bit_set[AccelerationStructureMotionInstanceFlagNV; Flags]
+AccelerationStructureMotionInstanceFlagNV            :: enum u32 {}
+PipelineCoverageReductionStateCreateFlagsNV          :: distinct bit_set[PipelineCoverageReductionStateCreateFlagNV; Flags]
+PipelineCoverageReductionStateCreateFlagNV           :: enum u32 {}
 
 
 
 

File diff suppressed because it is too large
+ 468 - 938
vendor/vulkan/procedures.odin


+ 55 - 1
vendor/vulkan/structs.odin

@@ -32,7 +32,7 @@ when ODIN_OS == "windows" {
 	}
 	}
 }
 }
 
 
-CAMetalLayer :: struct {}
+CAMetalLayer :: struct {};
 
 
 /********************************/
 /********************************/
 
 
@@ -2651,6 +2651,47 @@ PipelineExecutableInternalRepresentationKHR :: struct {
 	pData:       rawptr,
 	pData:       rawptr,
 }
 }
 
 
+PhysicalDeviceShaderIntegerDotProductFeaturesKHR :: struct {
+	sType:                   StructureType,
+	pNext:                   rawptr,
+	shaderIntegerDotProduct: b32,
+}
+
+PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: struct {
+	sType:                                                                         StructureType,
+	pNext:                                                                         rawptr,
+	integerDotProduct8BitUnsignedAccelerated:                                      b32,
+	integerDotProduct8BitSignedAccelerated:                                        b32,
+	integerDotProduct8BitMixedSignednessAccelerated:                               b32,
+	integerDotProduct4x8BitPackedUnsignedAccelerated:                              b32,
+	integerDotProduct4x8BitPackedSignedAccelerated:                                b32,
+	integerDotProduct4x8BitPackedMixedSignednessAccelerated:                       b32,
+	integerDotProduct16BitUnsignedAccelerated:                                     b32,
+	integerDotProduct16BitSignedAccelerated:                                       b32,
+	integerDotProduct16BitMixedSignednessAccelerated:                              b32,
+	integerDotProduct32BitUnsignedAccelerated:                                     b32,
+	integerDotProduct32BitSignedAccelerated:                                       b32,
+	integerDotProduct32BitMixedSignednessAccelerated:                              b32,
+	integerDotProduct64BitUnsignedAccelerated:                                     b32,
+	integerDotProduct64BitSignedAccelerated:                                       b32,
+	integerDotProduct64BitMixedSignednessAccelerated:                              b32,
+	integerDotProductAccumulatingSaturating8BitUnsignedAccelerated:                b32,
+	integerDotProductAccumulatingSaturating8BitSignedAccelerated:                  b32,
+	integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated:         b32,
+	integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated:        b32,
+	integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated:          b32,
+	integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated: b32,
+	integerDotProductAccumulatingSaturating16BitUnsignedAccelerated:               b32,
+	integerDotProductAccumulatingSaturating16BitSignedAccelerated:                 b32,
+	integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated:        b32,
+	integerDotProductAccumulatingSaturating32BitUnsignedAccelerated:               b32,
+	integerDotProductAccumulatingSaturating32BitSignedAccelerated:                 b32,
+	integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated:        b32,
+	integerDotProductAccumulatingSaturating64BitUnsignedAccelerated:               b32,
+	integerDotProductAccumulatingSaturating64BitSignedAccelerated:                 b32,
+	integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated:        b32,
+}
+
 PipelineLibraryCreateInfoKHR :: struct {
 PipelineLibraryCreateInfoKHR :: struct {
 	sType:        StructureType,
 	sType:        StructureType,
 	pNext:        rawptr,
 	pNext:        rawptr,
@@ -4733,6 +4774,13 @@ PhysicalDeviceDrmPropertiesEXT :: struct {
 	renderMinor:  i64,
 	renderMinor:  i64,
 }
 }
 
 
+PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT :: struct {
+	sType:                             StructureType,
+	pNext:                             rawptr,
+	primitiveTopologyListRestart:      b32,
+	primitiveTopologyPatchListRestart: b32,
+}
+
 SubpassShadingPipelineCreateInfoHUAWEI :: struct {
 SubpassShadingPipelineCreateInfoHUAWEI :: struct {
 	sType:      StructureType,
 	sType:      StructureType,
 	pNext:      rawptr,
 	pNext:      rawptr,
@@ -4828,6 +4876,12 @@ MultiDrawIndexedInfoEXT :: struct {
 	vertexOffset: i32,
 	vertexOffset: i32,
 }
 }
 
 
+PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT :: struct {
+	sType:                     StructureType,
+	pNext:                     rawptr,
+	pageableDeviceLocalMemory: b32,
+}
+
 DeviceOrHostAddressKHR :: struct #raw_union {
 DeviceOrHostAddressKHR :: struct #raw_union {
 	deviceAddress: DeviceAddress,
 	deviceAddress: DeviceAddress,
 	hostAddress:   rawptr,
 	hostAddress:   rawptr,

Some files were not shown because too many files changed in this diff