Update vulkan generator tool

This commit is contained in:
gingerBill
2021-09-08 13:22:29 +01:00
parent e0ee59084e
commit 36151d227a
6 changed files with 761 additions and 1092 deletions

View File

@@ -163,12 +163,12 @@ def parse_handles_def(f):
max_len = max(len(h) 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)]
max_len = max(len(h) 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()
@@ -222,7 +222,7 @@ def fix_enum_value(value, prefix, suffix, is_flag_bit):
return token
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)
allowed_names = (
"HEADER_VERSION",
@@ -232,13 +232,13 @@ def parse_constants(f):
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)
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)
max_len = max(len(name) 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")
@@ -258,7 +258,7 @@ def parse_enums(f):
flags_name = enum_name.replace("FlagBits", "Flags")
enum_name = enum_name.replace("FlagBits", "Flag")
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:
@@ -344,9 +344,9 @@ def parse_enums(f):
used_flags.append('.'+flags[i])
else:
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 += "};\n"
s += "}\n"
f.write(s)
if len(groups) > 0:
@@ -358,8 +358,8 @@ def parse_enums(f):
max_len = max(len(flag) for flag in unused_flags)
for flag in unused_flags:
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])
for n, t in aliases:
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)
f.write("// Procedure Types\n\n");
f.write("when ODIN_OS == \"windows\" {\n");
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):
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)
for name, vk_name in group_lines:
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("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)
for name, vk_name in group_lines:
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'),
"".ljust(k),
remove_prefix(vk_name, 'Proc'),
@@ -503,54 +498,54 @@ import "core:c"
with open("../core.odin", 'w', encoding='utf-8') as f:
f.write(BASE)
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 {
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
"""[1::])
parse_constants(f)
@@ -568,24 +563,24 @@ MAX_GLOBAL_PRIORITY_SIZE_EXT :: 16;
when ODIN_OS == "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 {
\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 {
\t\tLowPart: DWORD,
\t\tHighPart: LONG,

View File

@@ -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
// Version of this file
#define VK_HEADER_VERSION 189
#define VK_HEADER_VERSION 191
// Complete version of this file
#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_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
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_PROPERTIES_EXT = 1000281001,
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_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
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_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
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_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
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_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,
@@ -2125,10 +2129,6 @@ typedef enum VkImageViewCreateFlagBits {
VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkImageViewCreateFlagBits;
typedef VkFlags VkImageViewCreateFlags;
typedef enum VkShaderModuleCreateFlagBits {
VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkShaderModuleCreateFlagBits;
typedef VkFlags VkShaderModuleCreateFlags;
typedef enum VkPipelineCacheCreateFlagBits {
@@ -7867,6 +7867,52 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR
#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_SPEC_VERSION 1
#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_SPEC_VERSION 2
#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_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
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 12

View File

@@ -54,7 +54,7 @@ MAX_QUEUE_FAMILY_EXTERNAL :: ~u32(0)-1
MAX_GLOBAL_PRIORITY_SIZE_EXT :: 16
// General Constants
HEADER_VERSION :: 189
HEADER_VERSION :: 191
MAX_DRIVER_NAME_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_SPEC_VERSION :: 1
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_SPEC_VERSION :: 1
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_SPEC_VERSION :: 1
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_SPEC_VERSION :: 1
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_SPEC_VERSION :: 1
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_SPEC_VERSION :: 12
KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME :: "VK_KHR_acceleration_structure"

View File

@@ -537,6 +537,8 @@ StructureType :: enum c.int {
PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
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_PROPERTIES_EXT = 1000281001,
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_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
@@ -622,6 +625,7 @@ StructureType :: enum c.int {
QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001,
PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
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_SHADER_DRAW_PARAMETER_FEATURES = PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
DEBUG_REPORT_CREATE_INFO_EXT = DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -1793,10 +1797,6 @@ ImageViewCreateFlag :: enum Flags {
FRAGMENT_DENSITY_MAP_DEFERRED_EXT = 1,
}
ShaderModuleCreateFlags :: distinct bit_set[ShaderModuleCreateFlag; Flags]
ShaderModuleCreateFlag :: enum Flags {
}
PipelineCacheCreateFlags :: distinct bit_set[PipelineCacheCreateFlag; Flags]
PipelineCacheCreateFlag :: enum Flags {
EXTERNALLY_SYNCHRONIZED_EXT = 0,
@@ -2866,85 +2866,87 @@ 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 {}
ShaderModuleCreateFlags :: distinct bit_set[ShaderModuleCreateFlag; Flags]
ShaderModuleCreateFlag :: enum u32 {}
HeadlessSurfaceCreateFlagsEXT :: distinct bit_set[HeadlessSurfaceCreateFlagEXT; Flags]
HeadlessSurfaceCreateFlagEXT :: enum u32 {}
PipelineInputAssemblyStateCreateFlags :: distinct bit_set[PipelineInputAssemblyStateCreateFlag; Flags]
PipelineInputAssemblyStateCreateFlag :: 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 {}
DeviceCreateFlags :: distinct bit_set[DeviceCreateFlag; Flags]
DeviceCreateFlag :: 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 {}
QueryPoolCreateFlags :: distinct bit_set[QueryPoolCreateFlag; Flags]
QueryPoolCreateFlag :: enum u32 {}
CommandPoolTrimFlags :: distinct bit_set[CommandPoolTrimFlag; Flags]
CommandPoolTrimFlag :: 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]
PipelineColorBlendStateCreateFlag :: 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]
PipelineRasterizationConservativeStateCreateFlagEXT :: enum u32 {}
PipelineCoverageToColorStateCreateFlagsNV :: distinct bit_set[PipelineCoverageToColorStateCreateFlagNV; Flags]
PipelineCoverageToColorStateCreateFlagNV :: enum u32 {}
DebugUtilsMessengerCallbackDataFlagsEXT :: distinct bit_set[DebugUtilsMessengerCallbackDataFlagEXT; Flags]
DebugUtilsMessengerCallbackDataFlagEXT :: 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]
MacOSSurfaceCreateFlagMVK :: 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]
Win32SurfaceCreateFlagKHR :: enum u32 {}
DescriptorPoolResetFlags :: distinct bit_set[DescriptorPoolResetFlag; Flags]
DescriptorPoolResetFlag :: 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 Load Diff

View File

@@ -32,7 +32,7 @@ when ODIN_OS == "windows" {
}
}
CAMetalLayer :: struct {}
CAMetalLayer :: struct {};
/********************************/
@@ -2651,6 +2651,47 @@ PipelineExecutableInternalRepresentationKHR :: struct {
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 {
sType: StructureType,
pNext: rawptr,
@@ -4733,6 +4774,13 @@ PhysicalDeviceDrmPropertiesEXT :: struct {
renderMinor: i64,
}
PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT :: struct {
sType: StructureType,
pNext: rawptr,
primitiveTopologyListRestart: b32,
primitiveTopologyPatchListRestart: b32,
}
SubpassShadingPipelineCreateInfoHUAWEI :: struct {
sType: StructureType,
pNext: rawptr,
@@ -4828,6 +4876,12 @@ MultiDrawIndexedInfoEXT :: struct {
vertexOffset: i32,
}
PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT :: struct {
sType: StructureType,
pNext: rawptr,
pageableDeviceLocalMemory: b32,
}
DeviceOrHostAddressKHR :: struct #raw_union {
deviceAddress: DeviceAddress,
hostAddress: rawptr,