Browse Source

Merge branch 'master' into bill/new-slice-sort

gingerBill 6 days ago
parent
commit
7815d78f88

+ 22 - 0
base/runtime/core.odin

@@ -636,6 +636,8 @@ _cleanup_runtime_contextless :: proc "contextless" () {
 /////////////////////////////
 /////////////////////////////
 
 
 
 
+// type_info_base returns the base-type of a `^Type_Info` stripping the `distinct`ness from the first level
+@(require_results)
 type_info_base :: proc "contextless" (info: ^Type_Info) -> ^Type_Info {
 type_info_base :: proc "contextless" (info: ^Type_Info) -> ^Type_Info {
 	if info == nil {
 	if info == nil {
 		return nil
 		return nil
@@ -652,6 +654,10 @@ type_info_base :: proc "contextless" (info: ^Type_Info) -> ^Type_Info {
 }
 }
 
 
 
 
+// type_info_core returns the core-type of a `^Type_Info` stripping the `distinct`ness from the first level AND/OR
+// returns the backing integer type of an enum or bit_set `^Type_Info`.
+// This is also aliased as `type_info_base_without_enum`
+@(require_results)
 type_info_core :: proc "contextless" (info: ^Type_Info) -> ^Type_Info {
 type_info_core :: proc "contextless" (info: ^Type_Info) -> ^Type_Info {
 	if info == nil {
 	if info == nil {
 		return nil
 		return nil
@@ -668,6 +674,10 @@ type_info_core :: proc "contextless" (info: ^Type_Info) -> ^Type_Info {
 	}
 	}
 	return base
 	return base
 }
 }
+
+// type_info_base_without_enum returns the core-type of a `^Type_Info` stripping the `distinct`ness from the first level AND/OR
+// returns the backing integer type of an enum or bit_set `^Type_Info`.
+// This is also aliased as `type_info_core`
 type_info_base_without_enum :: type_info_core
 type_info_base_without_enum :: type_info_core
 
 
 __type_info_of :: proc "contextless" (id: typeid) -> ^Type_Info #no_bounds_check {
 __type_info_of :: proc "contextless" (id: typeid) -> ^Type_Info #no_bounds_check {
@@ -684,15 +694,23 @@ __type_info_of :: proc "contextless" (id: typeid) -> ^Type_Info #no_bounds_check
 }
 }
 
 
 when !ODIN_NO_RTTI {
 when !ODIN_NO_RTTI {
+	// typeid_base returns the base-type of a `typeid` stripping the `distinct`ness from the first level
 	typeid_base :: proc "contextless" (id: typeid) -> typeid {
 	typeid_base :: proc "contextless" (id: typeid) -> typeid {
 		ti := type_info_of(id)
 		ti := type_info_of(id)
 		ti = type_info_base(ti)
 		ti = type_info_base(ti)
 		return ti.id
 		return ti.id
 	}
 	}
+	// typeid_core returns the core-type of a `typeid` stripping the `distinct`ness from the first level AND/OR
+	// returns the backing integer type of an enum or bit_set `typeid`.
+	// This is also aliased as `typeid_base_without_enum`
 	typeid_core :: proc "contextless" (id: typeid) -> typeid {
 	typeid_core :: proc "contextless" (id: typeid) -> typeid {
 		ti := type_info_core(type_info_of(id))
 		ti := type_info_core(type_info_of(id))
 		return ti.id
 		return ti.id
 	}
 	}
+
+	// typeid_base_without_enum returns the core-type of a `typeid` stripping the `distinct`ness from the first level AND/OR
+	// returns the backing integer type of an enum or bit_set `typeid`.
+	// This is also aliased as `typeid_core`
 	typeid_base_without_enum :: typeid_core
 	typeid_base_without_enum :: typeid_core
 }
 }
 
 
@@ -708,11 +726,15 @@ default_logger_proc :: proc(data: rawptr, level: Logger_Level, text: string, opt
 	// Nothing
 	// Nothing
 }
 }
 
 
+// Returns the default logger used by `context.logger`
+@(require_results)
 default_logger :: proc() -> Logger {
 default_logger :: proc() -> Logger {
 	return Logger{default_logger_proc, nil, Logger_Level.Debug, nil}
 	return Logger{default_logger_proc, nil, Logger_Level.Debug, nil}
 }
 }
 
 
 
 
+// Returns the default `context`
+@(require_results)
 default_context :: proc "contextless" () -> Context {
 default_context :: proc "contextless" () -> Context {
 	c: Context
 	c: Context
 	__init_context(&c)
 	__init_context(&c)

+ 7 - 2
core/bytes/bytes.odin

@@ -134,8 +134,13 @@ equal_fold :: proc(u, v: []byte) -> bool {
 			return false
 			return false
 		}
 		}
 
 
-		// TODO(bill): Unicode folding
-
+		r := unicode.simple_fold(sr)
+		for r != sr && r < tr {
+			r = unicode.simple_fold(sr)
+		}
+		if r == tr {
+			continue loop
+		}
 		return false
 		return false
 	}
 	}
 
 

+ 4 - 3
core/container/rbtree/rbtree.odin

@@ -128,9 +128,9 @@ find_value :: proc(t: ^$T/Tree($Key, $Value), key: Key) -> (value: Value, ok: bo
 	return
 	return
 }
 }
 
 
-// find_or_insert attempts to insert the value into the tree, and returns
-// the node, a boolean indicating if the value was inserted, and the
-// node allocator error if relevant.  If the value is already present, the existing node is updated.
+// find_or_insert attempts to insert the key-value pair into the tree, and returns
+// the node, a boolean indicating if a new node was inserted, and the
+// node allocator error if relevant. If the key is already present, the existing node is updated and returned.
 find_or_insert :: proc(t: ^$T/Tree($Key, $Value), key: Key, value: Value) -> (n: ^Node(Key, Value), inserted: bool, err: runtime.Allocator_Error) {
 find_or_insert :: proc(t: ^$T/Tree($Key, $Value), key: Key, value: Value) -> (n: ^Node(Key, Value), inserted: bool, err: runtime.Allocator_Error) {
 	n_ptr := &t._root
 	n_ptr := &t._root
 	for n_ptr^ != nil {
 	for n_ptr^ != nil {
@@ -141,6 +141,7 @@ find_or_insert :: proc(t: ^$T/Tree($Key, $Value), key: Key, value: Value) -> (n:
 		case .Greater:
 		case .Greater:
 			n_ptr = &n._right
 			n_ptr = &n._right
 		case .Equal:
 		case .Equal:
+			n.value = value
 			return
 			return
 		}
 		}
 	}
 	}

+ 6 - 1
core/math/math.odin

@@ -402,7 +402,12 @@ remap :: proc "contextless" (old_value, old_min, old_max, new_min, new_max: $T)
 	if old_range == 0 {
 	if old_range == 0 {
 		return new_range / 2
 		return new_range / 2
 	}
 	}
-	return ((old_value - old_min) / old_range) * new_range + new_min
+
+	when intrinsics.type_is_integer(T) {
+		return (((old_value - old_min)) * new_range) / old_range + new_min
+	} else {
+		return ((old_value - old_min) / old_range) * new_range + new_min
+	}
 }
 }
 
 
 @(require_results)
 @(require_results)

+ 46 - 24
core/reflect/reflect.odin

@@ -153,7 +153,7 @@ when !ODIN_NO_RTTI {
 }
 }
 
 
 
 
-// any_base returns an `any` whether the `typeid` has been replaced with the `base-type` equivalent
+// any_base returns an `any` where the `typeid` has been replaced with the `base-type` equivalent
 @(require_results)
 @(require_results)
 any_base :: proc(v: any) -> any {
 any_base :: proc(v: any) -> any {
 	v := v
 	v := v
@@ -163,7 +163,7 @@ any_base :: proc(v: any) -> any {
 	return v
 	return v
 }
 }
 
 
-// any_core returns an `any` whether the `typeid` has been replaced with the `core-type` equivalent
+// any_core returns an `any` where the `typeid` has been replaced with the `core-type` equivalent
 @(require_results)
 @(require_results)
 any_core :: proc(v: any) -> any {
 any_core :: proc(v: any) -> any {
 	v := v
 	v := v
@@ -368,7 +368,7 @@ capacity :: proc(val: any) -> int {
 }
 }
 
 
 
 
-// Dynamically indexes `any` as an indexable-type if possbiel. Returns `nil` if not possible
+// Dynamically indexes `any` as an indexable-type if possible. Returns `nil` if not possible
 @(require_results)
 @(require_results)
 index :: proc(val: any, i: int, loc := #caller_location) -> any {
 index :: proc(val: any, i: int, loc := #caller_location) -> any {
 	if val == nil { return nil }
 	if val == nil { return nil }
@@ -455,13 +455,13 @@ deref :: proc(val: any) -> any {
 
 
 
 
 
 
-// Struct_Tag represents the type of the string of a struct field
+// `Struct_Tag` represents the type of the `string` of a struct field
 //
 //
-// Through convention, tags are the concatenation of optionally space separationed key:"value" pairs.
+// Through convention, tags are the concatenation of optionally space-separated key:"value" pairs.
 // Each key is a non-empty string which contains no control characters other than space, quotes, and colon.
 // Each key is a non-empty string which contains no control characters other than space, quotes, and colon.
 Struct_Tag :: distinct string
 Struct_Tag :: distinct string
 
 
-// Struct_Field represents a information of a field of a struct
+// `Struct_Field` represents a information of a field of a struct
 Struct_Field :: struct {
 Struct_Field :: struct {
 	name:     string,
 	name:     string,
 	type:     ^Type_Info,
 	type:     ^Type_Info,
@@ -541,8 +541,8 @@ struct_field_value_by_name :: proc(a: any, field: string, allow_using := false)
 
 
 // Returns an `any` of a struct field specified by a `Struct_Field`
 // Returns an `any` of a struct field specified by a `Struct_Field`
 // Example:
 // Example:
-// 	v := struct_field_value_by_name(the_struct, field)
-// 	nested_value_through_using := struct_field_value_by_name(the_struct, field, allow_using=true)
+// 	field := struct_field_value_by_name(the_struct, "field_name")
+// 	value_by_field := struct_field_value(the_struct, field)
 @(require_results)
 @(require_results)
 struct_field_value :: proc(a: any, field: Struct_Field) -> any {
 struct_field_value :: proc(a: any, field: Struct_Field) -> any {
 	if a == nil { return nil }
 	if a == nil { return nil }
@@ -573,7 +573,7 @@ struct_field_types :: proc(T: typeid) -> []^Type_Info {
 }
 }
 
 
 
 
-// Returns a `[]Struct_Type` of the tags of the struct fields of type `T`
+// Returns a `[]Struct_Tag` of the tags of the struct fields of type `T`
 @(require_results)
 @(require_results)
 struct_field_tags :: proc(T: typeid) -> []Struct_Tag {
 struct_field_tags :: proc(T: typeid) -> []Struct_Tag {
 	ti := runtime.type_info_base(type_info_of(T))
 	ti := runtime.type_info_base(type_info_of(T))
@@ -673,23 +673,23 @@ struct_fields_zipped :: proc(T: typeid) -> (fields: #soa[]Struct_Field) {
 
 
 
 
 // struct_tag_get returns the value associated with a key in the tag string.
 // struct_tag_get returns the value associated with a key in the tag string.
-// If the key is present in the tag, the value (which might be empty) is return. Otherwise an empty string is returned.
+// If the key is present in the tag, the value (which might be empty) is returned. Otherwise an empty string is returned.
 // This is just a wrapper around `struct_tag_lookup` with the `ok` value being ignored.
 // This is just a wrapper around `struct_tag_lookup` with the `ok` value being ignored.
 //
 //
-// The convention for is usually of the form:
+// The convention for struct tags is usually of the form:
 //
 //
 // 	`key:"value" another:"set" and:"whatever"`
 // 	`key:"value" another:"set" and:"whatever"`
 @(require_results)
 @(require_results)
 struct_tag_get :: proc(tag: Struct_Tag, key: string) -> (value: string) {
 struct_tag_get :: proc(tag: Struct_Tag, key: string) -> (value: string) {
 	v, _ := struct_tag_lookup(tag, key)
 	v, _ := struct_tag_lookup(tag, key)
-	return string(v)
+	return v
 }
 }
 
 
 // struct_tag_lookup returns the value associated with a key in the tag string.
 // struct_tag_lookup returns the value associated with a key in the tag string.
 // If the key is present in the tag, the value (which might be empty) is return. Otherwise an empty string is returned.
 // If the key is present in the tag, the value (which might be empty) is return. Otherwise an empty string is returned.
 // The `ok` value returns whether the value was explicit set in the tag string.
 // The `ok` value returns whether the value was explicit set in the tag string.
 //
 //
-// The convention for is usually of the form:
+// The convention for struct tags is usually of the form:
 //
 //
 // 	`key:"value" another:"set" and:"whatever"`
 // 	`key:"value" another:"set" and:"whatever"`
 @(require_results)
 @(require_results)
@@ -770,7 +770,7 @@ enum_string :: proc(a: any) -> string {
 	return ""
 	return ""
 }
 }
 
 
-// Given a enum type and a value name, get the enum value.
+// Given an enum type and a value name, get the enum value.
 @(require_results)
 @(require_results)
 enum_from_name :: proc($Enum_Type: typeid, name: string) -> (value: Enum_Type, ok: bool) {
 enum_from_name :: proc($Enum_Type: typeid, name: string) -> (value: Enum_Type, ok: bool) {
 	ti := type_info_base(type_info_of(Enum_Type))
 	ti := type_info_base(type_info_of(Enum_Type))
@@ -917,7 +917,7 @@ type_info_union_is_pure_maybe :: proc(info: runtime.Type_Info_Union) -> bool {
 	return len(info.variants) == 1 && is_pointer_internally(info.variants[0])
 	return len(info.variants) == 1 && is_pointer_internally(info.variants[0])
 }
 }
 
 
-// Returns `typeid` of a any-encoded union type. Panics if a union was not passed.
+// UNSAFE: Returns `typeid` of a any-encoded union type. Panics if a union was not passed.
 @(require_results)
 @(require_results)
 union_variant_typeid :: proc(a: any) -> typeid {
 union_variant_typeid :: proc(a: any) -> typeid {
 	if a == nil { return nil }
 	if a == nil { return nil }
@@ -1003,7 +1003,7 @@ get_union_variant :: proc(a: any) -> any {
 	return any{a.data, id}
 	return any{a.data, id}
 }
 }
 
 
-// Converts a pointer to a union to a union containing the pointers to the variant types, and stores a pointer of the variant value in the new union
+// Converts a pointer to a union, to a union containing the pointers to the variant types, and stores a pointer of the variant value in the new union
 //
 //
 // Example:
 // Example:
 // 	val: union{i32, f32, string}
 // 	val: union{i32, f32, string}
@@ -1114,7 +1114,7 @@ set_union_variant_type_info :: proc(a: any, tag_ti: ^Type_Info) {
 	panic("expected a union to reflect.set_union_variant_type_info")
 	panic("expected a union to reflect.set_union_variant_type_info")
 }
 }
 
 
-// UNSAFE: Manually set the variant value of a union using an any. Panics if a union was not passed.
+// UNSAFE: Manually set the variant value of a union using an `any`. Panics if a union was not passed.
 set_union_value :: proc(dst: any, value: any) -> bool {
 set_union_value :: proc(dst: any, value: any) -> bool {
 	if dst == nil { return false }
 	if dst == nil { return false }
 
 
@@ -1153,7 +1153,7 @@ set_union_value :: proc(dst: any, value: any) -> bool {
 	panic("expected a union to reflect.set_union_variant_typeid")
 	panic("expected a union to reflect.set_union_variant_typeid")
 }
 }
 
 
-// Checks to see if the data stored is a bit_set and is big_ending. Panics if a bit_set was not passed.
+// UNSAFE: Checks to see if the data stored is a `bit_set` and is big endian. Panics if a `bit_set` was not passed.
 @(require_results)
 @(require_results)
 bit_set_is_big_endian :: proc(value: any, loc := #caller_location) -> bool {
 bit_set_is_big_endian :: proc(value: any, loc := #caller_location) -> bool {
 	if value == nil { return ODIN_ENDIAN == .Big }
 	if value == nil { return ODIN_ENDIAN == .Big }
@@ -1185,7 +1185,7 @@ Bit_Field :: struct {
 	tag:    Struct_Tag,
 	tag:    Struct_Tag,
 }
 }
 
 
-// Returns the fields of a bit_field type `T` as an `#soa` slice.
+// Returns the fields of a `bit_field` type `T` as an `#soa` slice.
 // This is useful to iterate over.
 // This is useful to iterate over.
 // Example:
 // Example:
 // 	for field, i in reflect.bit_fields_zipped(Foo_Bit_Field) { ... }
 // 	for field, i in reflect.bit_fields_zipped(Foo_Bit_Field) { ... }
@@ -1204,7 +1204,7 @@ bit_fields_zipped :: proc(T: typeid) -> (fields: #soa[]Bit_Field) {
 	return nil
 	return nil
 }
 }
 
 
-// bit_field_names returns a `[]string` of the field names of a bit_field type `T`
+// bit_field_names returns a `[]string` of the field names of a `bit_field` type `T`
 @(require_results)
 @(require_results)
 bit_field_names :: proc(T: typeid) -> []string {
 bit_field_names :: proc(T: typeid) -> []string {
 	ti := runtime.type_info_base(type_info_of(T))
 	ti := runtime.type_info_base(type_info_of(T))
@@ -1214,7 +1214,7 @@ bit_field_names :: proc(T: typeid) -> []string {
 	return nil
 	return nil
 }
 }
 
 
-// bit_field_types returns a `[]^Type_Info` of the field representation types of a bit_field type `T`, not the backing integer-bit-width types
+// bit_field_types returns a `[]^Type_Info` of the field representation types of a `bit_field` type `T`, not the backing integer-bit-width types
 @(require_results)
 @(require_results)
 bit_field_types :: proc(T: typeid) -> []^Type_Info {
 bit_field_types :: proc(T: typeid) -> []^Type_Info {
 	ti := runtime.type_info_base(type_info_of(T))
 	ti := runtime.type_info_base(type_info_of(T))
@@ -1224,7 +1224,7 @@ bit_field_types :: proc(T: typeid) -> []^Type_Info {
 	return nil
 	return nil
 }
 }
 
 
-// bit_field_types returns a `[]uintptr` of the field bit-width-sizes of a bit_field type `T`
+// bit_field_types returns a `[]uintptr` of the field bit-width-sizes of a `bit_field` type `T`
 @(require_results)
 @(require_results)
 bit_field_sizes :: proc(T: typeid) -> []uintptr {
 bit_field_sizes :: proc(T: typeid) -> []uintptr {
 	ti := runtime.type_info_base(type_info_of(T))
 	ti := runtime.type_info_base(type_info_of(T))
@@ -1234,7 +1234,7 @@ bit_field_sizes :: proc(T: typeid) -> []uintptr {
 	return nil
 	return nil
 }
 }
 
 
-// bit_field_types returns a `[]uintptr` of the field offsets in bits of a bit_field type `T`
+// bit_field_types returns a `[]uintptr` of the field offsets in bits of a `bit_field` type `T`
 @(require_results)
 @(require_results)
 bit_field_offsets :: proc(T: typeid) -> []uintptr {
 bit_field_offsets :: proc(T: typeid) -> []uintptr {
 	ti := runtime.type_info_base(type_info_of(T))
 	ti := runtime.type_info_base(type_info_of(T))
@@ -1244,7 +1244,7 @@ bit_field_offsets :: proc(T: typeid) -> []uintptr {
 	return nil
 	return nil
 }
 }
 
 
-// bit_field_types returns a `[]Struct_Tag` of the field tags of a bit_field type `T`
+// bit_field_types returns a `[]Struct_Tag` of the field tags of a `bit_field` type `T`
 @(require_results)
 @(require_results)
 bit_field_tags :: proc(T: typeid) -> []Struct_Tag {
 bit_field_tags :: proc(T: typeid) -> []Struct_Tag {
 	ti := runtime.type_info_base(type_info_of(T))
 	ti := runtime.type_info_base(type_info_of(T))
@@ -1655,6 +1655,27 @@ as_string :: proc(a: any) -> (value: string, valid: bool) {
 	return
 	return
 }
 }
 
 
+// as_string16 attempts to convert an `any` to a `string16`.
+@(require_results)
+as_string16 :: proc(a: any) -> (value: string16, valid: bool) {
+	if a == nil { return }
+	a := a
+	ti := runtime.type_info_core(type_info_of(a.id))
+	a.id = ti.id
+
+	#partial switch info in ti.variant {
+	case Type_Info_String:
+		valid = true
+		switch v in a {
+		case string16:  value = v
+		case cstring16: value = string16(v)
+		case: valid = false
+		}
+	}
+
+	return
+}
+
 @(require_results)
 @(require_results)
 relative_pointer_to_absolute_raw :: proc(data: rawptr, base_integer_id: typeid) -> rawptr {
 relative_pointer_to_absolute_raw :: proc(data: rawptr, base_integer_id: typeid) -> rawptr {
 	_handle :: proc(ptr: ^$T) -> rawptr where intrinsics.type_is_integer(T) {
 	_handle :: proc(ptr: ^$T) -> rawptr where intrinsics.type_is_integer(T) {
@@ -1770,6 +1791,7 @@ DEFAULT_EQUAL_MAX_RECURSION_LEVEL :: 32
 not_equal :: proc(a, b: any, including_indirect_array_recursion := false, recursion_level := 0) -> bool {
 not_equal :: proc(a, b: any, including_indirect_array_recursion := false, recursion_level := 0) -> bool {
 	return !equal(a, b, including_indirect_array_recursion, recursion_level)
 	return !equal(a, b, including_indirect_array_recursion, recursion_level)
 }
 }
+
 // Checks to see if two `any` values are semantically equivalent
 // Checks to see if two `any` values are semantically equivalent
 @(require_results)
 @(require_results)
 equal :: proc(a, b: any, including_indirect_array_recursion := false, recursion_level := 0) -> bool {
 equal :: proc(a, b: any, including_indirect_array_recursion := false, recursion_level := 0) -> bool {

+ 7 - 2
core/strings/strings.odin

@@ -436,8 +436,13 @@ equal_fold :: proc(u, v: string) -> (res: bool) {
 			return false
 			return false
 		}
 		}
 
 
-		// TODO(bill): Unicode folding
-
+		r := unicode.simple_fold(sr)
+		for r != sr && r < tr {
+			r = unicode.simple_fold(sr)
+		}
+		if r == tr {
+			continue loop
+		}
 		return false
 		return false
 	}
 	}
 
 

+ 0 - 3
src/check_expr.cpp

@@ -6211,7 +6211,6 @@ gb_internal isize get_procedure_param_count_excluding_defaults(Type *pt, isize *
 					continue;
 					continue;
 				}
 				}
 			}
 			}
-			break;
 		}
 		}
 	}
 	}
 
 
@@ -7483,8 +7482,6 @@ gb_internal CallArgumentData check_call_arguments_proc_group(CheckerContext *c,
 		Entity *e = proc_entities[valids[0].index];
 		Entity *e = proc_entities[valids[0].index];
 		GB_ASSERT(e != nullptr);
 		GB_ASSERT(e != nullptr);
 
 
-		Array<Operand> named_operands = {};
-
 		check_call_arguments_single(c, call, operand,
 		check_call_arguments_single(c, call, operand,
 			e, e->type,
 			e, e->type,
 			positional_operands, named_operands,
 			positional_operands, named_operands,

+ 110 - 17
src/llvm_backend_const.cpp

@@ -81,7 +81,7 @@ gb_internal String lb_get_const_string(lbModule *m, lbValue value) {
 }
 }
 
 
 
 
-gb_internal LLVMValueRef llvm_const_cast(LLVMValueRef val, LLVMTypeRef dst, bool *failure_) {
+gb_internal LLVMValueRef llvm_const_cast(lbModule *m, LLVMValueRef val, LLVMTypeRef dst, bool *failure_) {
 	LLVMTypeRef src = LLVMTypeOf(val);
 	LLVMTypeRef src = LLVMTypeOf(val);
 	if (src == dst) {
 	if (src == dst) {
 		return val;
 		return val;
@@ -93,14 +93,33 @@ gb_internal LLVMValueRef llvm_const_cast(LLVMValueRef val, LLVMTypeRef dst, bool
 	GB_ASSERT_MSG(lb_sizeof(dst) == lb_sizeof(src), "%s vs %s", LLVMPrintTypeToString(dst), LLVMPrintTypeToString(src));
 	GB_ASSERT_MSG(lb_sizeof(dst) == lb_sizeof(src), "%s vs %s", LLVMPrintTypeToString(dst), LLVMPrintTypeToString(src));
 	LLVMTypeKind kind = LLVMGetTypeKind(dst);
 	LLVMTypeKind kind = LLVMGetTypeKind(dst);
 	switch (kind) {
 	switch (kind) {
-	case LLVMPointerTypeKind:
+	case LLVMPointerTypeKind: {
 		return LLVMConstPointerCast(val, dst);
 		return LLVMConstPointerCast(val, dst);
-	case LLVMStructTypeKind:
-		if (LLVMTypeOf(val) != dst) {
-			if (failure_) *failure_ = true;
+	}
+	case LLVMStructTypeKind: {
+		unsigned src_n = LLVMCountStructElementTypes(src);
+		unsigned dst_n = LLVMCountStructElementTypes(dst);
+		if (src_n != dst_n) goto failure;
+
+		LLVMValueRef *field_vals = temporary_alloc_array<LLVMValueRef>(dst_n);
+		for (unsigned i = 0; i < dst_n; i++) {
+			LLVMValueRef field_val = llvm_const_extract_value(m, val, i);
+			if (field_val == nullptr) goto failure;
+
+			LLVMTypeRef dst_elem_ty = LLVMStructGetTypeAtIndex(dst, i);
+			field_vals[i] = llvm_const_cast(m, field_val, dst_elem_ty, failure_);
+			if (failure_ && *failure_) goto failure;
 		}
 		}
-		return val;
+
+		if (!LLVMIsLiteralStruct(dst)) {
+			return LLVMConstNamedStruct(dst, field_vals, dst_n);
+		} else {
+		return LLVMConstStructInContext(m->ctx, field_vals, dst_n, LLVMIsPackedStruct(dst));
+		}
+	}
 	}
 	}
+
+failure:
 	if (failure_) *failure_ = true;
 	if (failure_) *failure_ = true;
 	return val;
 	return val;
 }
 }
@@ -192,7 +211,7 @@ gb_internal LLVMValueRef llvm_const_named_struct_internal(lbModule *m, LLVMTypeR
 	bool failure = false;
 	bool failure = false;
 	for (unsigned i = 0; i < elem_count; i++) {
 	for (unsigned i = 0; i < elem_count; i++) {
 		LLVMTypeRef elem_type = LLVMStructGetTypeAtIndex(t, i);
 		LLVMTypeRef elem_type = LLVMStructGetTypeAtIndex(t, i);
-		values[i] = llvm_const_cast(values[i], elem_type, &failure);
+		values[i] = llvm_const_cast(m, values[i], elem_type, &failure);
 	}
 	}
 
 
 	if (failure) {
 	if (failure) {
@@ -205,7 +224,7 @@ gb_internal LLVMValueRef llvm_const_array(lbModule *m, LLVMTypeRef elem_type, LL
 	unsigned value_count = cast(unsigned)value_count_;
 	unsigned value_count = cast(unsigned)value_count_;
 	bool failure = false;
 	bool failure = false;
 	for (unsigned i = 0; i < value_count; i++) {
 	for (unsigned i = 0; i < value_count; i++) {
-		values[i] = llvm_const_cast(values[i], elem_type, &failure);
+		values[i] = llvm_const_cast(m, values[i], elem_type, &failure);
 	}
 	}
 	if (failure) {
 	if (failure) {
 		return LLVMConstStructInContext(m->ctx, values, value_count, false);
 		return LLVMConstStructInContext(m->ctx, values, value_count, false);
@@ -549,6 +568,83 @@ gb_internal bool lb_is_nested_possibly_constant(Type *ft, Selection const &sel,
 	return lb_is_elem_const(elem, ft);
 	return lb_is_elem_const(elem, ft);
 }
 }
 
 
+LLVMValueRef llvm_const_pad_to_size(lbModule *m, LLVMValueRef val, LLVMTypeRef dst_ty) {
+	LLVMContextRef ctx = m->ctx;
+	LLVMTargetDataRef td = LLVMGetModuleDataLayout(m->mod);
+	LLVMTypeRef src_ty = LLVMTypeOf(val);
+	unsigned src_bits = (unsigned)LLVMSizeOfTypeInBits(td, src_ty);
+	unsigned dst_bits = (unsigned)LLVMSizeOfTypeInBits(td, dst_ty);
+
+	LLVMValueRef as_int = nullptr;
+	LLVMTypeKind src_kind = LLVMGetTypeKind(src_ty);
+
+	if (src_kind == LLVMIntegerTypeKind ||
+		src_kind == LLVMFloatTypeKind ||
+		src_kind == LLVMDoubleTypeKind ||
+		src_kind == LLVMPointerTypeKind ||
+		src_kind == LLVMVectorTypeKind) {
+		LLVMTypeRef src_int_ty = LLVMIntTypeInContext(ctx, src_bits);
+		as_int = LLVMConstBitCast(val, src_int_ty);
+
+	} else if (src_kind == LLVMArrayTypeKind) {
+		unsigned elem_count = LLVMGetArrayLength(src_ty);
+		LLVMTypeRef elem_ty = LLVMGetElementType(src_ty);
+		unsigned elem_bits = (unsigned)LLVMSizeOfTypeInBits(td, elem_ty);
+		LLVMTypeRef src_int_ty = LLVMIntTypeInContext(ctx, src_bits);
+		as_int = LLVMConstInt(src_int_ty, 0, false);
+
+		for (unsigned i = 0; i < elem_count; i++) {
+			LLVMValueRef elem = llvm_const_extract_value(m, val, i);
+			LLVMTypeRef elem_int_ty = LLVMIntTypeInContext(ctx, elem_bits);
+			LLVMValueRef elem_int = llvm_const_pad_to_size(m, elem, elem_int_ty);
+			LLVMValueRef shifted = llvm_const_shl(m, llvm_const_zext(m, elem_int, src_int_ty), LLVMConstInt(src_int_ty, i * elem_bits, false));
+			as_int = llvm_const_or(m, as_int, shifted);
+		}
+	} else {
+		gb_printf_err("unsupported const_pad source type: %s\n", LLVMPrintTypeToString(src_ty));
+		return nullptr;
+	}
+
+	if (src_bits != dst_bits) {
+		LLVMTypeRef dst_int_ty = LLVMIntTypeInContext(ctx, dst_bits);
+		if (src_bits < dst_bits) {
+			as_int = llvm_const_zext(m, as_int, dst_int_ty);
+		} else {
+			as_int = LLVMConstTrunc(as_int, dst_int_ty);
+		}
+	}
+
+	LLVMTypeKind dst_kind = LLVMGetTypeKind(dst_ty);
+
+	if (dst_kind == LLVMIntegerTypeKind ||
+		dst_kind == LLVMFloatTypeKind ||
+		dst_kind == LLVMDoubleTypeKind ||
+		dst_kind == LLVMPointerTypeKind ||
+		dst_kind == LLVMVectorTypeKind) {
+		return LLVMConstBitCast(as_int, dst_ty);
+
+	} else if (dst_kind == LLVMArrayTypeKind) {
+		unsigned elem_count = LLVMGetArrayLength(dst_ty);
+		LLVMTypeRef elem_ty = LLVMGetElementType(dst_ty);
+		unsigned elem_bits = (unsigned)LLVMSizeOfTypeInBits(td, elem_ty);
+
+		LLVMValueRef *elems = temporary_alloc_array<LLVMValueRef>(elem_count);
+		LLVMTypeRef as_int_ty = LLVMTypeOf(as_int);
+
+		for (unsigned i = 0; i < elem_count; i++) {
+			LLVMValueRef shifted = llvm_const_lshr(m, as_int, LLVMConstInt(as_int_ty, i * elem_bits, false));
+			LLVMTypeRef elem_int_ty = LLVMIntTypeInContext(ctx, elem_bits);
+			LLVMValueRef trunc = LLVMConstTrunc(shifted, elem_int_ty);
+			elems[i] = llvm_const_pad_to_size(m, trunc, elem_ty);
+		}
+
+		return LLVMConstArray(elem_ty, elems, elem_count);
+	}
+
+	gb_printf_err("unsupported const_pad destination type: %s\n", LLVMPrintTypeToString(dst_ty));
+	return nullptr;
+}
+
 gb_internal lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, lbConstContext cc, Type *value_type) {
 gb_internal lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, lbConstContext cc, Type *value_type) {
 	if (cc.allow_local) {
 	if (cc.allow_local) {
 		cc.is_rodata = false;
 		cc.is_rodata = false;
@@ -634,14 +730,11 @@ gb_internal lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, lb
 			lbValue cv = lb_const_value(m, value_type, value, cc, value_type);
 			lbValue cv = lb_const_value(m, value_type, value, cc, value_type);
 			Type *variant_type = cv.type;
 			Type *variant_type = cv.type;
 
 
-			LLVMValueRef values[4] = {};
+			LLVMValueRef values[3] = {};
 			unsigned value_count = 0;
 			unsigned value_count = 0;
 
 
-			values[value_count++] = cv.value;
-			if (type_size_of(variant_type) != block_size) {
-				LLVMTypeRef padding_type = lb_type_padding_filler(m, block_size - type_size_of(variant_type), 1);
-				values[value_count++] = LLVMConstNull(padding_type);
-			}
+			LLVMTypeRef block_type = lb_type_internal_union_block_type(m, bt);
+			values[value_count++] = llvm_const_pad_to_size(m, cv.value, block_type);
 
 
 			Type *tag_type = union_tag_type(bt);
 			Type *tag_type = union_tag_type(bt);
 			LLVMTypeRef llvm_tag_type = lb_type(m, tag_type);
 			LLVMTypeRef llvm_tag_type = lb_type(m, tag_type);
@@ -870,7 +963,7 @@ gb_internal lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, lb
 		Type *elem = type->Matrix.elem;
 		Type *elem = type->Matrix.elem;
 		
 		
 		lbValue single_elem = lb_const_value(m, elem, value, cc);
 		lbValue single_elem = lb_const_value(m, elem, value, cc);
-		single_elem.value = llvm_const_cast(single_elem.value, lb_type(m, elem), /*failure_*/nullptr);
+		single_elem.value = llvm_const_cast(m, single_elem.value, lb_type(m, elem), /*failure_*/nullptr);
 				
 				
 		i64 total_elem_count = matrix_type_total_internal_elems(type);
 		i64 total_elem_count = matrix_type_total_internal_elems(type);
 		LLVMValueRef *elems = gb_alloc_array(permanent_allocator(), LLVMValueRef, cast(isize)total_elem_count);		
 		LLVMValueRef *elems = gb_alloc_array(permanent_allocator(), LLVMValueRef, cast(isize)total_elem_count);		
@@ -892,7 +985,7 @@ gb_internal lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, lb
 		Type *elem = type->SimdVector.elem;
 		Type *elem = type->SimdVector.elem;
 
 
 		lbValue single_elem = lb_const_value(m, elem, value, cc);
 		lbValue single_elem = lb_const_value(m, elem, value, cc);
-		single_elem.value = llvm_const_cast(single_elem.value, lb_type(m, elem), /*failure_*/nullptr);
+		single_elem.value = llvm_const_cast(m, single_elem.value, lb_type(m, elem), /*failure_*/nullptr);
 
 
 		LLVMValueRef *elems = gb_alloc_array(permanent_allocator(), LLVMValueRef, count);
 		LLVMValueRef *elems = gb_alloc_array(permanent_allocator(), LLVMValueRef, count);
 		for (i64 i = 0; i < count; i++) {
 		for (i64 i = 0; i < count; i++) {
@@ -1472,7 +1565,7 @@ gb_internal lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, lb
 					values[i] = LLVMConstNull(et);
 					values[i] = LLVMConstNull(et);
 				}
 				}
 				for (isize i = 0; i < total_elem_count; i++) {
 				for (isize i = 0; i < total_elem_count; i++) {
-					values[i] = llvm_const_cast(values[i], et, /*failure_*/nullptr);
+					values[i] = llvm_const_cast(m, values[i], et, /*failure_*/nullptr);
 				}
 				}
 
 
 				res.value = LLVMConstVector(values, cast(unsigned)total_elem_count);
 				res.value = LLVMConstVector(values, cast(unsigned)total_elem_count);

+ 25 - 0
src/llvm_backend_general.cpp

@@ -449,6 +449,31 @@ gb_internal LLVMValueRef llvm_const_insert_value(lbModule *m, LLVMValueRef agg,
 }
 }
 
 
 
 
+gb_internal LLVMValueRef llvm_const_shl(lbModule *m, LLVMValueRef a, LLVMValueRef b) {
+	LLVMValueRef res = LLVMBuildShl(m->const_dummy_builder, a, b, "");
+	GB_ASSERT(LLVMIsConstant(res));
+	return res;
+}
+
+gb_internal LLVMValueRef llvm_const_lshr(lbModule *m, LLVMValueRef a, LLVMValueRef b) {
+	LLVMValueRef res = LLVMBuildLShr(m->const_dummy_builder, a, b, "");
+	GB_ASSERT(LLVMIsConstant(res));
+	return res;
+}
+
+gb_internal LLVMValueRef llvm_const_or(lbModule *m, LLVMValueRef a, LLVMValueRef b) {
+	LLVMValueRef res = LLVMBuildOr(m->const_dummy_builder, a, b, "");
+	GB_ASSERT(LLVMIsConstant(res));
+	return res;
+}
+
+gb_internal LLVMValueRef llvm_const_zext(lbModule *m, LLVMValueRef a, LLVMTypeRef b) {
+	LLVMValueRef res = LLVMBuildZExt(m->const_dummy_builder, a, b, "");
+	GB_ASSERT(LLVMIsConstant(res));
+	return res;
+}
+
+
 
 
 
 
 gb_internal LLVMValueRef llvm_cstring(lbModule *m, String const &str) {
 gb_internal LLVMValueRef llvm_cstring(lbModule *m, String const &str) {

+ 2 - 2
vendor/miniaudio/data_conversion.odin

@@ -566,9 +566,9 @@ foreign lib {
 	pcm_rb_uninit               :: proc(pRB: ^pcm_rb) ---
 	pcm_rb_uninit               :: proc(pRB: ^pcm_rb) ---
 	pcm_rb_reset                :: proc(pRB: ^pcm_rb) ---
 	pcm_rb_reset                :: proc(pRB: ^pcm_rb) ---
 	pcm_rb_acquire_read         :: proc(pRB: ^pcm_rb, pSizeInFrames: ^u32, ppBufferOut: ^rawptr) -> result ---
 	pcm_rb_acquire_read         :: proc(pRB: ^pcm_rb, pSizeInFrames: ^u32, ppBufferOut: ^rawptr) -> result ---
-	pcm_rb_commit_read          :: proc(pRB: ^pcm_rb, sizeInFrames: u32, pBufferOut: rawptr) -> result ---
+	pcm_rb_commit_read          :: proc(pRB: ^pcm_rb, sizeInFrames: u32) -> result ---
 	pcm_rb_acquire_write        :: proc(pRB: ^pcm_rb, pSizeInFrames: ^u32, ppBufferOut: ^rawptr) -> result ---
 	pcm_rb_acquire_write        :: proc(pRB: ^pcm_rb, pSizeInFrames: ^u32, ppBufferOut: ^rawptr) -> result ---
-	pcm_rb_commit_write         :: proc(pRB: ^pcm_rb, sizeInFrames: u32, pBufferOut: rawptr) -> result ---
+	pcm_rb_commit_write         :: proc(pRB: ^pcm_rb, sizeInFrames: u32) -> result ---
 	pcm_rb_seek_read            :: proc(pRB: ^pcm_rb, offsetInFrames: u32) -> result ---
 	pcm_rb_seek_read            :: proc(pRB: ^pcm_rb, offsetInFrames: u32) -> result ---
 	pcm_rb_seek_write           :: proc(pRB: ^pcm_rb, offsetInFrames: u32) -> result ---
 	pcm_rb_seek_write           :: proc(pRB: ^pcm_rb, offsetInFrames: u32) -> result ---
 	pcm_rb_pointer_distance     :: proc(pRB: ^pcm_rb) -> i32 --- /* Return value is in frames. */
 	pcm_rb_pointer_distance     :: proc(pRB: ^pcm_rb) -> i32 --- /* Return value is in frames. */

+ 6 - 4
vendor/vulkan/_gen/create_vulkan_odin_wrapper.py

@@ -301,7 +301,7 @@ def parse_constants(f):
 
 
     f.write("\n// Vendor Constants\n")
     f.write("\n// Vendor Constants\n")
     fixes = '|'.join(ext_suffixes)
     fixes = '|'.join(ext_suffixes)
-    inner = r"((?:(?:" + fixes + r")\w+)|(?:\w+" + fixes + r"))"
+    inner = r"((?:(?:" + fixes + r")\w+)|(?:\w+(?:" + fixes + r")\b))"
     pattern = r"#define\s+VK_" + inner + r"\s*(.*?)\n"
     pattern = r"#define\s+VK_" + inner + r"\s*(.*?)\n"
     data = re.findall(pattern, src, re.S)
     data = re.findall(pattern, src, re.S)
 
 
@@ -311,7 +311,11 @@ def parse_constants(f):
     for name, value in data:
     for name, value in data:
         value = remove_prefix(value, 'VK_')
         value = remove_prefix(value, 'VK_')
         v = number_suffix_re.findall(value)
         v = number_suffix_re.findall(value)
-        if v:
+        if value == "(~0U)":
+            value = "~u32(0)"
+        elif value == "(~0ULL)":
+            value = "~u64(0)"
+        elif v:
             value = v[0]
             value = v[0]
         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")
@@ -935,7 +939,6 @@ FALSE                                 :: 0
 QUEUE_FAMILY_IGNORED                  :: ~u32(0)
 QUEUE_FAMILY_IGNORED                  :: ~u32(0)
 SUBPASS_EXTERNAL                      :: ~u32(0)
 SUBPASS_EXTERNAL                      :: ~u32(0)
 MAX_PHYSICAL_DEVICE_NAME_SIZE         :: 256
 MAX_PHYSICAL_DEVICE_NAME_SIZE         :: 256
-MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT :: 32
 UUID_SIZE                             :: 16
 UUID_SIZE                             :: 16
 MAX_MEMORY_TYPES                      :: 32
 MAX_MEMORY_TYPES                      :: 32
 MAX_MEMORY_HEAPS                      :: 16
 MAX_MEMORY_HEAPS                      :: 16
@@ -946,7 +949,6 @@ LUID_SIZE_KHX                         :: 8
 LUID_SIZE                             :: 8
 LUID_SIZE                             :: 8
 MAX_QUEUE_FAMILY_EXTERNAL             :: ~u32(1)
 MAX_QUEUE_FAMILY_EXTERNAL             :: ~u32(1)
 MAX_GLOBAL_PRIORITY_SIZE              :: 16
 MAX_GLOBAL_PRIORITY_SIZE              :: 16
-MAX_GLOBAL_PRIORITY_SIZE_EXT          :: MAX_GLOBAL_PRIORITY_SIZE
 QUEUE_FAMILY_EXTERNAL                 :: MAX_QUEUE_FAMILY_EXTERNAL
 QUEUE_FAMILY_EXTERNAL                 :: MAX_QUEUE_FAMILY_EXTERNAL
 
 
 // Vulkan Video API Constants
 // Vulkan Video API Constants

+ 1069 - 1065
vendor/vulkan/core.odin

@@ -39,7 +39,6 @@ FALSE                                 :: 0
 QUEUE_FAMILY_IGNORED                  :: ~u32(0)
 QUEUE_FAMILY_IGNORED                  :: ~u32(0)
 SUBPASS_EXTERNAL                      :: ~u32(0)
 SUBPASS_EXTERNAL                      :: ~u32(0)
 MAX_PHYSICAL_DEVICE_NAME_SIZE         :: 256
 MAX_PHYSICAL_DEVICE_NAME_SIZE         :: 256
-MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT :: 32
 UUID_SIZE                             :: 16
 UUID_SIZE                             :: 16
 MAX_MEMORY_TYPES                      :: 32
 MAX_MEMORY_TYPES                      :: 32
 MAX_MEMORY_HEAPS                      :: 16
 MAX_MEMORY_HEAPS                      :: 16
@@ -50,7 +49,6 @@ LUID_SIZE_KHX                         :: 8
 LUID_SIZE                             :: 8
 LUID_SIZE                             :: 8
 MAX_QUEUE_FAMILY_EXTERNAL             :: ~u32(1)
 MAX_QUEUE_FAMILY_EXTERNAL             :: ~u32(1)
 MAX_GLOBAL_PRIORITY_SIZE              :: 16
 MAX_GLOBAL_PRIORITY_SIZE              :: 16
-MAX_GLOBAL_PRIORITY_SIZE_EXT          :: MAX_GLOBAL_PRIORITY_SIZE
 QUEUE_FAMILY_EXTERNAL                 :: MAX_QUEUE_FAMILY_EXTERNAL
 QUEUE_FAMILY_EXTERNAL                 :: MAX_QUEUE_FAMILY_EXTERNAL
 
 
 // Vulkan Video API Constants
 // Vulkan Video API Constants
@@ -140,1069 +138,1075 @@ VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME :: "VK_STD_vulkan_video_codec_h265
 VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME :: "VK_STD_vulkan_video_codec_h265_encode"
 VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME :: "VK_STD_vulkan_video_codec_h265_encode"
 
 
 // Vendor Constants
 // 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_video_queue                                           :: 1
-KHR_VIDEO_QUEUE_SPEC_VERSION                              :: 8
-KHR_VIDEO_QUEUE_EXTENSION_NAME                            :: "VK_KHR_video_queue"
-KHR_video_decode_queue                                    :: 1
-KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION                       :: 8
-KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME                     :: "VK_KHR_video_decode_queue"
-KHR_video_encode_h264                                     :: 1
-KHR_VIDEO_ENCODE_H264_SPEC_VERSION                        :: 14
-KHR_VIDEO_ENCODE_H264_EXTENSION_NAME                      :: "VK_KHR_video_encode_h264"
-KHR_video_encode_h265                                     :: 1
-KHR_VIDEO_ENCODE_H265_SPEC_VERSION                        :: 14
-KHR_VIDEO_ENCODE_H265_EXTENSION_NAME                      :: "VK_KHR_video_encode_h265"
-KHR_video_decode_h264                                     :: 1
-KHR_VIDEO_DECODE_H264_SPEC_VERSION                        :: 9
-KHR_VIDEO_DECODE_H264_EXTENSION_NAME                      :: "VK_KHR_video_decode_h264"
-KHR_dynamic_rendering                                     :: 1
-KHR_DYNAMIC_RENDERING_SPEC_VERSION                        :: 1
-KHR_DYNAMIC_RENDERING_EXTENSION_NAME                      :: "VK_KHR_dynamic_rendering"
-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_MAINTENANCE_1_SPEC_VERSION                            :: 2
-KHR_MAINTENANCE_1_EXTENSION_NAME                          :: "VK_KHR_maintenance1"
-KHR_MAINTENANCE1_SPEC_VERSION                             :: KHR_MAINTENANCE_1_SPEC_VERSION
-KHR_MAINTENANCE1_EXTENSION_NAME                           :: KHR_MAINTENANCE_1_EXTENSION_NAME
-KHR_device_group_creation                                 :: 1
-KHR_DEVICE_GROUP_CREATION_SPEC_VERSION                    :: 1
-KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME                  :: "VK_KHR_device_group_creation"
-MAX_DEVICE_GROUP_SIZE_KHR                                 :: MAX_DEVICE_GROUP_SIZE
-KHR_external_memory_capabilities                          :: 1
-KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION             :: 1
-KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME           :: "VK_KHR_external_memory_capabilities"
-LUID_SIZE_KHR                                             :: LUID_SIZE
-KHR_external_memory                                       :: 1
-KHR_EXTERNAL_MEMORY_SPEC_VERSION                          :: 1
-KHR_EXTERNAL_MEMORY_EXTENSION_NAME                        :: "VK_KHR_external_memory"
-QUEUE_FAMILY_EXTERNAL_KHR                                 :: QUEUE_FAMILY_EXTERNAL
-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_MAINTENANCE_2_SPEC_VERSION                            :: 1
-KHR_MAINTENANCE_2_EXTENSION_NAME                          :: "VK_KHR_maintenance2"
-KHR_MAINTENANCE2_SPEC_VERSION                             :: KHR_MAINTENANCE_2_SPEC_VERSION
-KHR_MAINTENANCE2_EXTENSION_NAME                           :: KHR_MAINTENANCE_2_EXTENSION_NAME
-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_MAINTENANCE_3_SPEC_VERSION                            :: 1
-KHR_MAINTENANCE_3_EXTENSION_NAME                          :: "VK_KHR_maintenance3"
-KHR_MAINTENANCE3_SPEC_VERSION                             :: KHR_MAINTENANCE_3_SPEC_VERSION
-KHR_MAINTENANCE3_EXTENSION_NAME                           :: KHR_MAINTENANCE_3_EXTENSION_NAME
-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_video_decode_h265                                     :: 1
-KHR_VIDEO_DECODE_H265_SPEC_VERSION                        :: 8
-KHR_VIDEO_DECODE_H265_EXTENSION_NAME                      :: "VK_KHR_video_decode_h265"
-KHR_global_priority                                       :: 1
-KHR_GLOBAL_PRIORITY_SPEC_VERSION                          :: 1
-KHR_GLOBAL_PRIORITY_EXTENSION_NAME                        :: "VK_KHR_global_priority"
-MAX_GLOBAL_PRIORITY_SIZE_KHR                              :: MAX_GLOBAL_PRIORITY_SIZE
-KHR_driver_properties                                     :: 1
-KHR_DRIVER_PROPERTIES_SPEC_VERSION                        :: 1
-KHR_DRIVER_PROPERTIES_EXTENSION_NAME                      :: "VK_KHR_driver_properties"
-MAX_DRIVER_NAME_SIZE_KHR                                  :: MAX_DRIVER_NAME_SIZE
-MAX_DRIVER_INFO_SIZE_KHR                                  :: MAX_DRIVER_INFO_SIZE
-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                    :: 2
-KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME                  :: "VK_KHR_fragment_shading_rate"
-KHR_dynamic_rendering_local_read                          :: 1
-KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION             :: 1
-KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME           :: "VK_KHR_dynamic_rendering_local_read"
-KHR_shader_quad_control                                   :: 1
-KHR_SHADER_QUAD_CONTROL_SPEC_VERSION                      :: 1
-KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME                    :: "VK_KHR_shader_quad_control"
-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_map_memory2                                           :: 1
-KHR_MAP_MEMORY_2_SPEC_VERSION                             :: 1
-KHR_MAP_MEMORY_2_EXTENSION_NAME                           :: "VK_KHR_map_memory2"
-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"
-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_video_encode_queue                                    :: 1
-KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION                       :: 12
-KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME                     :: "VK_KHR_video_encode_queue"
-KHR_synchronization2                                      :: 1
-KHR_SYNCHRONIZATION_2_SPEC_VERSION                        :: 1
-KHR_SYNCHRONIZATION_2_EXTENSION_NAME                      :: "VK_KHR_synchronization2"
-KHR_fragment_shader_barycentric                           :: 1
-KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION              :: 1
-KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME            :: "VK_KHR_fragment_shader_barycentric"
-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"
-KHR_format_feature_flags2                                 :: 1
-KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION                   :: 2
-KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME                 :: "VK_KHR_format_feature_flags2"
-KHR_ray_tracing_maintenance1                              :: 1
-KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION                :: 1
-KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME              :: "VK_KHR_ray_tracing_maintenance1"
-KHR_portability_enumeration                               :: 1
-KHR_PORTABILITY_ENUMERATION_SPEC_VERSION                  :: 1
-KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME                :: "VK_KHR_portability_enumeration"
-KHR_maintenance4                                          :: 1
-KHR_MAINTENANCE_4_SPEC_VERSION                            :: 2
-KHR_MAINTENANCE_4_EXTENSION_NAME                          :: "VK_KHR_maintenance4"
-KHR_shader_subgroup_rotate                                :: 1
-KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION                   :: 2
-KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME                 :: "VK_KHR_shader_subgroup_rotate"
-KHR_shader_maximal_reconvergence                          :: 1
-KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION             :: 1
-KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME           :: "VK_KHR_shader_maximal_reconvergence"
-KHR_maintenance5                                          :: 1
-KHR_MAINTENANCE_5_SPEC_VERSION                            :: 1
-KHR_MAINTENANCE_5_EXTENSION_NAME                          :: "VK_KHR_maintenance5"
-KHR_ray_tracing_position_fetch                            :: 1
-KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION               :: 1
-KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME             :: "VK_KHR_ray_tracing_position_fetch"
-KHR_pipeline_binary                                       :: 1
-MAX_PIPELINE_BINARY_KEY_SIZE_KHR                          :: 32
-KHR_PIPELINE_BINARY_SPEC_VERSION                          :: 1
-KHR_PIPELINE_BINARY_EXTENSION_NAME                        :: "VK_KHR_pipeline_binary"
-KHR_cooperative_matrix                                    :: 1
-KHR_COOPERATIVE_MATRIX_SPEC_VERSION                       :: 2
-KHR_COOPERATIVE_MATRIX_EXTENSION_NAME                     :: "VK_KHR_cooperative_matrix"
-KHR_compute_shader_derivatives                            :: 1
-KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION               :: 1
-KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME             :: "VK_KHR_compute_shader_derivatives"
-KHR_video_decode_av1                                      :: 1
-MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR                    :: 7
-KHR_VIDEO_DECODE_AV1_SPEC_VERSION                         :: 1
-KHR_VIDEO_DECODE_AV1_EXTENSION_NAME                       :: "VK_KHR_video_decode_av1"
-KHR_video_encode_av1                                      :: 1
-KHR_VIDEO_ENCODE_AV1_SPEC_VERSION                         :: 1
-KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME                       :: "VK_KHR_video_encode_av1"
-KHR_video_maintenance1                                    :: 1
-KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION                      :: 1
-KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME                    :: "VK_KHR_video_maintenance1"
-KHR_vertex_attribute_divisor                              :: 1
-KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION                 :: 1
-KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME               :: "VK_KHR_vertex_attribute_divisor"
-KHR_load_store_op_none                                    :: 1
-KHR_LOAD_STORE_OP_NONE_SPEC_VERSION                       :: 1
-KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME                     :: "VK_KHR_load_store_op_none"
-KHR_shader_float_controls2                                :: 1
-KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION                  :: 1
-KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME                :: "VK_KHR_shader_float_controls2"
-KHR_index_type_uint8                                      :: 1
-KHR_INDEX_TYPE_UINT8_SPEC_VERSION                         :: 1
-KHR_INDEX_TYPE_UINT8_EXTENSION_NAME                       :: "VK_KHR_index_type_uint8"
-KHR_line_rasterization                                    :: 1
-KHR_LINE_RASTERIZATION_SPEC_VERSION                       :: 1
-KHR_LINE_RASTERIZATION_EXTENSION_NAME                     :: "VK_KHR_line_rasterization"
-KHR_calibrated_timestamps                                 :: 1
-KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION                    :: 1
-KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME                  :: "VK_KHR_calibrated_timestamps"
-KHR_shader_expect_assume                                  :: 1
-KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION                     :: 1
-KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME                   :: "VK_KHR_shader_expect_assume"
-KHR_maintenance6                                          :: 1
-KHR_MAINTENANCE_6_SPEC_VERSION                            :: 1
-KHR_MAINTENANCE_6_EXTENSION_NAME                          :: "VK_KHR_maintenance6"
-KHR_video_encode_quantization_map                         :: 1
-KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION            :: 2
-KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME          :: "VK_KHR_video_encode_quantization_map"
-KHR_shader_relaxed_extended_instruction                   :: 1
-KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION      :: 1
-KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME    :: "VK_KHR_shader_relaxed_extended_instruction"
-KHR_maintenance7                                          :: 1
-KHR_MAINTENANCE_7_SPEC_VERSION                            :: 1
-KHR_MAINTENANCE_7_EXTENSION_NAME                          :: "VK_KHR_maintenance7"
-KHR_maintenance8                                          :: 1
-KHR_MAINTENANCE_8_SPEC_VERSION                            :: 1
-KHR_MAINTENANCE_8_EXTENSION_NAME                          :: "VK_KHR_maintenance8"
-KHR_video_maintenance2                                    :: 1
-KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION                      :: 1
-KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME                    :: "VK_KHR_video_maintenance2"
-KHR_depth_clamp_zero_one                                  :: 1
-KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION                     :: 1
-KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME                   :: "VK_KHR_depth_clamp_zero_one"
-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                            :: 2
-NVX_BINARY_IMPORT_EXTENSION_NAME                          :: "VK_NVX_binary_import"
-NVX_image_view_handle                                     :: 1
-NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION                        :: 3
-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                         :: 3
-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_pipeline_robustness                                   :: 1
-EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION                      :: 1
-EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME                    :: "VK_EXT_pipeline_robustness"
-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_ARRAY_2_SPEC_VERSION                          :: 1
-NV_VIEWPORT_ARRAY_2_EXTENSION_NAME                        :: "VK_NV_viewport_array2"
-NV_VIEWPORT_ARRAY2_SPEC_VERSION                           :: NV_VIEWPORT_ARRAY_2_SPEC_VERSION
-NV_VIEWPORT_ARRAY2_EXTENSION_NAME                         :: NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
-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                       :: 2
-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                    :: 5
-EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME                  :: "VK_EXT_swapchain_colorspace"
-EXT_hdr_metadata                                          :: 1
-EXT_HDR_METADATA_SPEC_VERSION                             :: 3
-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                :: 2
-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"
-SHADER_UNUSED_KHR                                         :: 0
-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                         :: 2
-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                     :: 2
-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_FUNCTIONALITY_1_SPEC_VERSION                  :: 1
-GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME                :: "VK_GOOGLE_hlsl_functionality1"
-GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION                   :: GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
-GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME                 :: GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
-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                      :: 6
-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_host_image_copy                                       :: 1
-EXT_HOST_IMAGE_COPY_SPEC_VERSION                          :: 1
-EXT_HOST_IMAGE_COPY_EXTENSION_NAME                        :: "VK_EXT_host_image_copy"
-EXT_map_memory_placed                                     :: 1
-EXT_MAP_MEMORY_PLACED_SPEC_VERSION                        :: 1
-EXT_MAP_MEMORY_PLACED_EXTENSION_NAME                      :: "VK_EXT_map_memory_placed"
-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_surface_maintenance1                                  :: 1
-EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION                    :: 1
-EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME                  :: "VK_EXT_surface_maintenance1"
-EXT_swapchain_maintenance1                                :: 1
-EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION                  :: 1
-EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME                :: "VK_EXT_swapchain_maintenance1"
-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_depth_bias_control                                    :: 1
-EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION                       :: 1
-EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME                     :: "VK_EXT_depth_bias_control"
-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"
-NV_present_barrier                                        :: 1
-NV_PRESENT_BARRIER_SPEC_VERSION                           :: 1
-NV_PRESENT_BARRIER_EXTENSION_NAME                         :: "VK_NV_present_barrier"
-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                 :: 2
-NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME               :: "VK_NV_device_diagnostics_config"
-NV_cuda_kernel_launch                                     :: 1
-NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION                        :: 2
-NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME                      :: "VK_NV_cuda_kernel_launch"
-NV_low_latency                                            :: 1
-NV_LOW_LATENCY_SPEC_VERSION                               :: 1
-NV_LOW_LATENCY_EXTENSION_NAME                             :: "VK_NV_low_latency"
-EXT_descriptor_buffer                                     :: 1
-EXT_DESCRIPTOR_BUFFER_SPEC_VERSION                        :: 1
-EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME                      :: "VK_EXT_descriptor_buffer"
-EXT_graphics_pipeline_library                             :: 1
-EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION                :: 1
-EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME              :: "VK_EXT_graphics_pipeline_library"
-AMD_shader_early_and_late_fragment_tests                  :: 1
-AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION     :: 1
-AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME   :: "VK_AMD_shader_early_and_late_fragment_tests"
-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_image_compression_control                             :: 1
-EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION                :: 1
-EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME              :: "VK_EXT_image_compression_control"
-EXT_attachment_feedback_loop_layout                       :: 1
-EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION          :: 2
-EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME        :: "VK_EXT_attachment_feedback_loop_layout"
-EXT_4444_formats                                          :: 1
-EXT_4444_FORMATS_SPEC_VERSION                             :: 1
-EXT_4444_FORMATS_EXTENSION_NAME                           :: "VK_EXT_4444_formats"
-EXT_device_fault                                          :: 1
-EXT_DEVICE_FAULT_SPEC_VERSION                             :: 2
-EXT_DEVICE_FAULT_EXTENSION_NAME                           :: "VK_EXT_device_fault"
-EXT_rgba10x6_formats                                      :: 1
-EXT_RGBA10X6_FORMATS_SPEC_VERSION                         :: 1
-EXT_RGBA10X6_FORMATS_EXTENSION_NAME                       :: "VK_EXT_rgba10x6_formats"
-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"
-EXT_device_address_binding_report                         :: 1
-EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION            :: 1
-EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME          :: "VK_EXT_device_address_binding_report"
-EXT_depth_clip_control                                    :: 1
-EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION                       :: 1
-EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME                     :: "VK_EXT_depth_clip_control"
-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"
-EXT_present_mode_fifo_latest_ready                        :: 1
-EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION           :: 1
-EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME         :: "VK_EXT_present_mode_fifo_latest_ready"
-NV_external_memory_rdma                                   :: 1
-NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION                      :: 1
-NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME                    :: "VK_NV_external_memory_rdma"
-EXT_pipeline_properties                                   :: 1
-EXT_PIPELINE_PROPERTIES_SPEC_VERSION                      :: 1
-EXT_PIPELINE_PROPERTIES_EXTENSION_NAME                    :: "VK_EXT_pipeline_properties"
-EXT_frame_boundary                                        :: 1
-EXT_FRAME_BOUNDARY_SPEC_VERSION                           :: 1
-EXT_FRAME_BOUNDARY_EXTENSION_NAME                         :: "VK_EXT_frame_boundary"
-EXT_multisampled_render_to_single_sampled                 :: 1
-EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION    :: 1
-EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME  :: "VK_EXT_multisampled_render_to_single_sampled"
-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_primitives_generated_query                            :: 1
-EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION               :: 1
-EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME             :: "VK_EXT_primitives_generated_query"
-EXT_global_priority_query                                 :: 1
-EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION                    :: 1
-EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME                  :: "VK_EXT_global_priority_query"
-EXT_image_view_min_lod                                    :: 1
-EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION                       :: 1
-EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME                     :: "VK_EXT_image_view_min_lod"
-EXT_multi_draw                                            :: 1
-EXT_MULTI_DRAW_SPEC_VERSION                               :: 1
-EXT_MULTI_DRAW_EXTENSION_NAME                             :: "VK_EXT_multi_draw"
-EXT_image_2d_view_of_3d                                   :: 1
-EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION                      :: 1
-EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME                    :: "VK_EXT_image_2d_view_of_3d"
-EXT_shader_tile_image                                     :: 1
-EXT_SHADER_TILE_IMAGE_SPEC_VERSION                        :: 1
-EXT_SHADER_TILE_IMAGE_EXTENSION_NAME                      :: "VK_EXT_shader_tile_image"
-EXT_opacity_micromap                                      :: 1
-EXT_OPACITY_MICROMAP_SPEC_VERSION                         :: 2
-EXT_OPACITY_MICROMAP_EXTENSION_NAME                       :: "VK_EXT_opacity_micromap"
-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_border_color_swizzle                                  :: 1
-EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION                     :: 1
-EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME                   :: "VK_EXT_border_color_swizzle"
-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"
-EXT_image_sliced_view_of_3d                               :: 1
-EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION                  :: 1
-EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME                :: "VK_EXT_image_sliced_view_of_3d"
-EXT_depth_clamp_zero_one                                  :: 1
-EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION                     :: 1
-EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME                   :: "VK_EXT_depth_clamp_zero_one"
-EXT_non_seamless_cube_map                                 :: 1
-EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION                    :: 1
-EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME                  :: "VK_EXT_non_seamless_cube_map"
-NV_copy_memory_indirect                                   :: 1
-NV_COPY_MEMORY_INDIRECT_SPEC_VERSION                      :: 1
-NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME                    :: "VK_NV_copy_memory_indirect"
-NV_memory_decompression                                   :: 1
-NV_MEMORY_DECOMPRESSION_SPEC_VERSION                      :: 1
-NV_MEMORY_DECOMPRESSION_EXTENSION_NAME                    :: "VK_NV_memory_decompression"
-NV_device_generated_commands_compute                      :: 1
-NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION         :: 2
-NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME       :: "VK_NV_device_generated_commands_compute"
-NV_ray_tracing_linear_swept_spheres                       :: 1
-NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION          :: 1
-NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME        :: "VK_NV_ray_tracing_linear_swept_spheres"
-NV_linear_color_attachment                                :: 1
-NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION                   :: 1
-NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME                 :: "VK_NV_linear_color_attachment"
-GOOGLE_surfaceless_query                                  :: 1
-GOOGLE_SURFACELESS_QUERY_SPEC_VERSION                     :: 2
-GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME                   :: "VK_GOOGLE_surfaceless_query"
-EXT_image_compression_control_swapchain                   :: 1
-EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION      :: 1
-EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME    :: "VK_EXT_image_compression_control_swapchain"
-EXT_nested_command_buffer                                 :: 1
-EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION                    :: 1
-EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME                  :: "VK_EXT_nested_command_buffer"
-EXT_external_memory_acquire_unmodified                    :: 1
-EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION       :: 1
-EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME     :: "VK_EXT_external_memory_acquire_unmodified"
-EXT_extended_dynamic_state3                               :: 1
-EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION                 :: 2
-EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME               :: "VK_EXT_extended_dynamic_state3"
-EXT_subpass_merge_feedback                                :: 1
-EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION                   :: 2
-EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME                 :: "VK_EXT_subpass_merge_feedback"
-EXT_shader_module_identifier                              :: 1
-EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION                 :: 1
-EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME               :: "VK_EXT_shader_module_identifier"
-EXT_rasterization_order_attachment_access                 :: 1
-EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION    :: 1
-EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME  :: "VK_EXT_rasterization_order_attachment_access"
-NV_optical_flow                                           :: 1
-NV_OPTICAL_FLOW_SPEC_VERSION                              :: 1
-NV_OPTICAL_FLOW_EXTENSION_NAME                            :: "VK_NV_optical_flow"
-EXT_legacy_dithering                                      :: 1
-EXT_LEGACY_DITHERING_SPEC_VERSION                         :: 2
-EXT_LEGACY_DITHERING_EXTENSION_NAME                       :: "VK_EXT_legacy_dithering"
-EXT_pipeline_protected_access                             :: 1
-EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION                :: 1
-EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME              :: "VK_EXT_pipeline_protected_access"
-AMD_anti_lag                                              :: 1
-AMD_ANTI_LAG_SPEC_VERSION                                 :: 1
-AMD_ANTI_LAG_EXTENSION_NAME                               :: "VK_AMD_anti_lag"
-EXT_shader_object                                         :: 1
-EXT_SHADER_OBJECT_SPEC_VERSION                            :: 1
-EXT_SHADER_OBJECT_EXTENSION_NAME                          :: "VK_EXT_shader_object"
-NV_ray_tracing_invocation_reorder                         :: 1
-NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION            :: 1
-NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME          :: "VK_NV_ray_tracing_invocation_reorder"
-NV_cooperative_vector                                     :: 1
-NV_COOPERATIVE_VECTOR_SPEC_VERSION                        :: 4
-NV_COOPERATIVE_VECTOR_EXTENSION_NAME                      :: "VK_NV_cooperative_vector"
-NV_extended_sparse_address_space                          :: 1
-NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION             :: 1
-NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME           :: "VK_NV_extended_sparse_address_space"
-EXT_mutable_descriptor_type                               :: 1
-EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION                  :: 1
-EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME                :: "VK_EXT_mutable_descriptor_type"
-EXT_legacy_vertex_attributes                              :: 1
-EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION                 :: 1
-EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME               :: "VK_EXT_legacy_vertex_attributes"
-EXT_layer_settings                                        :: 1
-EXT_LAYER_SETTINGS_SPEC_VERSION                           :: 2
-EXT_LAYER_SETTINGS_EXTENSION_NAME                         :: "VK_EXT_layer_settings"
-EXT_pipeline_library_group_handles                        :: 1
-EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION           :: 1
-EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME         :: "VK_EXT_pipeline_library_group_handles"
-EXT_dynamic_rendering_unused_attachments                  :: 1
-EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION     :: 1
-EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME   :: "VK_EXT_dynamic_rendering_unused_attachments"
-NV_low_latency2                                           :: 1
-NV_LOW_LATENCY_2_SPEC_VERSION                             :: 2
-NV_LOW_LATENCY_2_EXTENSION_NAME                           :: "VK_NV_low_latency2"
-NV_per_stage_descriptor_set                               :: 1
-NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION                  :: 1
-NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME                :: "VK_NV_per_stage_descriptor_set"
-EXT_attachment_feedback_loop_dynamic_state                :: 1
-EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION   :: 1
-EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME :: "VK_EXT_attachment_feedback_loop_dynamic_state"
-NV_descriptor_pool_overallocation                         :: 1
-NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION            :: 1
-NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME          :: "VK_NV_descriptor_pool_overallocation"
-NV_display_stereo                                         :: 1
-NV_DISPLAY_STEREO_SPEC_VERSION                            :: 1
-NV_DISPLAY_STEREO_EXTENSION_NAME                          :: "VK_NV_display_stereo"
-NV_raw_access_chains                                      :: 1
-NV_RAW_ACCESS_CHAINS_SPEC_VERSION                         :: 1
-NV_RAW_ACCESS_CHAINS_EXTENSION_NAME                       :: "VK_NV_raw_access_chains"
-NV_command_buffer_inheritance                             :: 1
-NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION                :: 1
-NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME              :: "VK_NV_command_buffer_inheritance"
-NV_shader_atomic_float16_vector                           :: 1
-NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION              :: 1
-NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME            :: "VK_NV_shader_atomic_float16_vector"
-EXT_shader_replicated_composites                          :: 1
-EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION             :: 1
-EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME           :: "VK_EXT_shader_replicated_composites"
-NV_ray_tracing_validation                                 :: 1
-NV_RAY_TRACING_VALIDATION_SPEC_VERSION                    :: 1
-NV_RAY_TRACING_VALIDATION_EXTENSION_NAME                  :: "VK_NV_ray_tracing_validation"
-NV_cluster_acceleration_structure                         :: 1
-NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION            :: 2
-NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME          :: "VK_NV_cluster_acceleration_structure"
-NV_partitioned_acceleration_structure                     :: 1
-NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION        :: 1
-NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME      :: "VK_NV_partitioned_acceleration_structure"
-EXT_device_generated_commands                             :: 1
-EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION                :: 1
-EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME              :: "VK_EXT_device_generated_commands"
-EXT_depth_clamp_control                                   :: 1
-EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION                      :: 1
-EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME                    :: "VK_EXT_depth_clamp_control"
-NV_cooperative_matrix2                                    :: 1
-NV_COOPERATIVE_MATRIX_2_SPEC_VERSION                      :: 1
-NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME                    :: "VK_NV_cooperative_matrix2"
-EXT_vertex_attribute_robustness                           :: 1
-EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION              :: 1
-EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME            :: "VK_EXT_vertex_attribute_robustness"
-NV_present_metering                                       :: 1
-NV_PRESENT_METERING_SPEC_VERSION                          :: 1
-NV_PRESENT_METERING_EXTENSION_NAME                        :: "VK_NV_present_metering"
-KHR_acceleration_structure                                :: 1
-KHR_ACCELERATION_STRUCTURE_SPEC_VERSION                   :: 13
-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"
-EXT_mesh_shader                                           :: 1
-EXT_MESH_SHADER_SPEC_VERSION                              :: 1
-EXT_MESH_SHADER_EXTENSION_NAME                            :: "VK_EXT_mesh_shader"
-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"
-NV_acquire_winrt_display                                  :: 1
-NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION                     :: 1
-NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME                   :: "VK_NV_acquire_winrt_display"
-EXT_metal_surface                                         :: 1
-EXT_METAL_SURFACE_SPEC_VERSION                            :: 1
-EXT_METAL_SURFACE_EXTENSION_NAME                          :: "VK_EXT_metal_surface"
-EXT_metal_objects                                         :: 1
-EXT_METAL_OBJECTS_SPEC_VERSION                            :: 2
-EXT_METAL_OBJECTS_EXTENSION_NAME                          :: "VK_EXT_metal_objects"
-EXT_external_memory_metal                                 :: 1
-EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION                    :: 1
-EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME                  :: "VK_EXT_external_memory_metal"
-KHR_wayland_surface                                       :: 1
-KHR_WAYLAND_SURFACE_SPEC_VERSION                          :: 6
-KHR_WAYLAND_SURFACE_EXTENSION_NAME                        :: "VK_KHR_wayland_surface"
-KHR_xlib_surface                                          :: 1
-KHR_XLIB_SURFACE_SPEC_VERSION                             :: 6
-KHR_XLIB_SURFACE_EXTENSION_NAME                           :: "VK_KHR_xlib_surface"
-KHR_xcb_surface                                           :: 1
-KHR_XCB_SURFACE_SPEC_VERSION                              :: 6
-KHR_XCB_SURFACE_EXTENSION_NAME                            :: "VK_KHR_xcb_surface"
-KHR_portability_subset                                    :: 1
-KHR_PORTABILITY_SUBSET_SPEC_VERSION                       :: 1
-KHR_PORTABILITY_SUBSET_EXTENSION_NAME                     :: "VK_KHR_portability_subset"
-AMDX_shader_enqueue                                       :: 1
-AMDX_SHADER_ENQUEUE_SPEC_VERSION                          :: 2
-AMDX_SHADER_ENQUEUE_EXTENSION_NAME                        :: "VK_AMDX_shader_enqueue"
-NV_displacement_micromap                                  :: 1
-NV_DISPLACEMENT_MICROMAP_SPEC_VERSION                     :: 2
-NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME                   :: "VK_NV_displacement_micromap"
+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_video_queue                                              :: 1
+KHR_VIDEO_QUEUE_SPEC_VERSION                                 :: 8
+KHR_VIDEO_QUEUE_EXTENSION_NAME                               :: "VK_KHR_video_queue"
+KHR_video_decode_queue                                       :: 1
+KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION                          :: 8
+KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME                        :: "VK_KHR_video_decode_queue"
+KHR_video_encode_h264                                        :: 1
+KHR_VIDEO_ENCODE_H264_SPEC_VERSION                           :: 14
+KHR_VIDEO_ENCODE_H264_EXTENSION_NAME                         :: "VK_KHR_video_encode_h264"
+KHR_video_encode_h265                                        :: 1
+KHR_VIDEO_ENCODE_H265_SPEC_VERSION                           :: 14
+KHR_VIDEO_ENCODE_H265_EXTENSION_NAME                         :: "VK_KHR_video_encode_h265"
+KHR_video_decode_h264                                        :: 1
+KHR_VIDEO_DECODE_H264_SPEC_VERSION                           :: 9
+KHR_VIDEO_DECODE_H264_EXTENSION_NAME                         :: "VK_KHR_video_decode_h264"
+KHR_dynamic_rendering                                        :: 1
+KHR_DYNAMIC_RENDERING_SPEC_VERSION                           :: 1
+KHR_DYNAMIC_RENDERING_EXTENSION_NAME                         :: "VK_KHR_dynamic_rendering"
+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_MAINTENANCE_1_SPEC_VERSION                               :: 2
+KHR_MAINTENANCE_1_EXTENSION_NAME                             :: "VK_KHR_maintenance1"
+KHR_MAINTENANCE1_SPEC_VERSION                                :: KHR_MAINTENANCE_1_SPEC_VERSION
+KHR_MAINTENANCE1_EXTENSION_NAME                              :: KHR_MAINTENANCE_1_EXTENSION_NAME
+KHR_device_group_creation                                    :: 1
+KHR_DEVICE_GROUP_CREATION_SPEC_VERSION                       :: 1
+KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME                     :: "VK_KHR_device_group_creation"
+MAX_DEVICE_GROUP_SIZE_KHR                                    :: MAX_DEVICE_GROUP_SIZE
+KHR_external_memory_capabilities                             :: 1
+KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION                :: 1
+KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME              :: "VK_KHR_external_memory_capabilities"
+LUID_SIZE_KHR                                                :: LUID_SIZE
+KHR_external_memory                                          :: 1
+KHR_EXTERNAL_MEMORY_SPEC_VERSION                             :: 1
+KHR_EXTERNAL_MEMORY_EXTENSION_NAME                           :: "VK_KHR_external_memory"
+QUEUE_FAMILY_EXTERNAL_KHR                                    :: QUEUE_FAMILY_EXTERNAL
+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_MAINTENANCE_2_SPEC_VERSION                               :: 1
+KHR_MAINTENANCE_2_EXTENSION_NAME                             :: "VK_KHR_maintenance2"
+KHR_MAINTENANCE2_SPEC_VERSION                                :: KHR_MAINTENANCE_2_SPEC_VERSION
+KHR_MAINTENANCE2_EXTENSION_NAME                              :: KHR_MAINTENANCE_2_EXTENSION_NAME
+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_MAINTENANCE_3_SPEC_VERSION                               :: 1
+KHR_MAINTENANCE_3_EXTENSION_NAME                             :: "VK_KHR_maintenance3"
+KHR_MAINTENANCE3_SPEC_VERSION                                :: KHR_MAINTENANCE_3_SPEC_VERSION
+KHR_MAINTENANCE3_EXTENSION_NAME                              :: KHR_MAINTENANCE_3_EXTENSION_NAME
+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_video_decode_h265                                        :: 1
+KHR_VIDEO_DECODE_H265_SPEC_VERSION                           :: 8
+KHR_VIDEO_DECODE_H265_EXTENSION_NAME                         :: "VK_KHR_video_decode_h265"
+KHR_global_priority                                          :: 1
+KHR_GLOBAL_PRIORITY_SPEC_VERSION                             :: 1
+KHR_GLOBAL_PRIORITY_EXTENSION_NAME                           :: "VK_KHR_global_priority"
+MAX_GLOBAL_PRIORITY_SIZE_KHR                                 :: MAX_GLOBAL_PRIORITY_SIZE
+KHR_driver_properties                                        :: 1
+KHR_DRIVER_PROPERTIES_SPEC_VERSION                           :: 1
+KHR_DRIVER_PROPERTIES_EXTENSION_NAME                         :: "VK_KHR_driver_properties"
+MAX_DRIVER_NAME_SIZE_KHR                                     :: MAX_DRIVER_NAME_SIZE
+MAX_DRIVER_INFO_SIZE_KHR                                     :: MAX_DRIVER_INFO_SIZE
+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                       :: 2
+KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME                     :: "VK_KHR_fragment_shading_rate"
+KHR_dynamic_rendering_local_read                             :: 1
+KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION                :: 1
+KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME              :: "VK_KHR_dynamic_rendering_local_read"
+KHR_shader_quad_control                                      :: 1
+KHR_SHADER_QUAD_CONTROL_SPEC_VERSION                         :: 1
+KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME                       :: "VK_KHR_shader_quad_control"
+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_map_memory2                                              :: 1
+KHR_MAP_MEMORY_2_SPEC_VERSION                                :: 1
+KHR_MAP_MEMORY_2_EXTENSION_NAME                              :: "VK_KHR_map_memory2"
+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"
+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_video_encode_queue                                       :: 1
+KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION                          :: 12
+KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME                        :: "VK_KHR_video_encode_queue"
+KHR_synchronization2                                         :: 1
+KHR_SYNCHRONIZATION_2_SPEC_VERSION                           :: 1
+KHR_SYNCHRONIZATION_2_EXTENSION_NAME                         :: "VK_KHR_synchronization2"
+KHR_fragment_shader_barycentric                              :: 1
+KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION                 :: 1
+KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME               :: "VK_KHR_fragment_shader_barycentric"
+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"
+KHR_format_feature_flags2                                    :: 1
+KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION                      :: 2
+KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME                    :: "VK_KHR_format_feature_flags2"
+KHR_ray_tracing_maintenance1                                 :: 1
+KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION                   :: 1
+KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME                 :: "VK_KHR_ray_tracing_maintenance1"
+KHR_portability_enumeration                                  :: 1
+KHR_PORTABILITY_ENUMERATION_SPEC_VERSION                     :: 1
+KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME                   :: "VK_KHR_portability_enumeration"
+KHR_maintenance4                                             :: 1
+KHR_MAINTENANCE_4_SPEC_VERSION                               :: 2
+KHR_MAINTENANCE_4_EXTENSION_NAME                             :: "VK_KHR_maintenance4"
+KHR_shader_subgroup_rotate                                   :: 1
+KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION                      :: 2
+KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME                    :: "VK_KHR_shader_subgroup_rotate"
+KHR_shader_maximal_reconvergence                             :: 1
+KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION                :: 1
+KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME              :: "VK_KHR_shader_maximal_reconvergence"
+KHR_maintenance5                                             :: 1
+KHR_MAINTENANCE_5_SPEC_VERSION                               :: 1
+KHR_MAINTENANCE_5_EXTENSION_NAME                             :: "VK_KHR_maintenance5"
+KHR_ray_tracing_position_fetch                               :: 1
+KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION                  :: 1
+KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME                :: "VK_KHR_ray_tracing_position_fetch"
+KHR_pipeline_binary                                          :: 1
+MAX_PIPELINE_BINARY_KEY_SIZE_KHR                             :: 32
+KHR_PIPELINE_BINARY_SPEC_VERSION                             :: 1
+KHR_PIPELINE_BINARY_EXTENSION_NAME                           :: "VK_KHR_pipeline_binary"
+KHR_cooperative_matrix                                       :: 1
+KHR_COOPERATIVE_MATRIX_SPEC_VERSION                          :: 2
+KHR_COOPERATIVE_MATRIX_EXTENSION_NAME                        :: "VK_KHR_cooperative_matrix"
+KHR_compute_shader_derivatives                               :: 1
+KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION                  :: 1
+KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME                :: "VK_KHR_compute_shader_derivatives"
+KHR_video_decode_av1                                         :: 1
+MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR                       :: 7
+KHR_VIDEO_DECODE_AV1_SPEC_VERSION                            :: 1
+KHR_VIDEO_DECODE_AV1_EXTENSION_NAME                          :: "VK_KHR_video_decode_av1"
+KHR_video_encode_av1                                         :: 1
+KHR_VIDEO_ENCODE_AV1_SPEC_VERSION                            :: 1
+KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME                          :: "VK_KHR_video_encode_av1"
+KHR_video_maintenance1                                       :: 1
+KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION                         :: 1
+KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME                       :: "VK_KHR_video_maintenance1"
+KHR_vertex_attribute_divisor                                 :: 1
+KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION                    :: 1
+KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME                  :: "VK_KHR_vertex_attribute_divisor"
+KHR_load_store_op_none                                       :: 1
+KHR_LOAD_STORE_OP_NONE_SPEC_VERSION                          :: 1
+KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME                        :: "VK_KHR_load_store_op_none"
+KHR_shader_float_controls2                                   :: 1
+KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION                     :: 1
+KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME                   :: "VK_KHR_shader_float_controls2"
+KHR_index_type_uint8                                         :: 1
+KHR_INDEX_TYPE_UINT8_SPEC_VERSION                            :: 1
+KHR_INDEX_TYPE_UINT8_EXTENSION_NAME                          :: "VK_KHR_index_type_uint8"
+KHR_line_rasterization                                       :: 1
+KHR_LINE_RASTERIZATION_SPEC_VERSION                          :: 1
+KHR_LINE_RASTERIZATION_EXTENSION_NAME                        :: "VK_KHR_line_rasterization"
+KHR_calibrated_timestamps                                    :: 1
+KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION                       :: 1
+KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME                     :: "VK_KHR_calibrated_timestamps"
+KHR_shader_expect_assume                                     :: 1
+KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION                        :: 1
+KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME                      :: "VK_KHR_shader_expect_assume"
+KHR_maintenance6                                             :: 1
+KHR_MAINTENANCE_6_SPEC_VERSION                               :: 1
+KHR_MAINTENANCE_6_EXTENSION_NAME                             :: "VK_KHR_maintenance6"
+KHR_video_encode_quantization_map                            :: 1
+KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION               :: 2
+KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME             :: "VK_KHR_video_encode_quantization_map"
+KHR_shader_relaxed_extended_instruction                      :: 1
+KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION         :: 1
+KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME       :: "VK_KHR_shader_relaxed_extended_instruction"
+KHR_maintenance7                                             :: 1
+KHR_MAINTENANCE_7_SPEC_VERSION                               :: 1
+KHR_MAINTENANCE_7_EXTENSION_NAME                             :: "VK_KHR_maintenance7"
+KHR_maintenance8                                             :: 1
+KHR_MAINTENANCE_8_SPEC_VERSION                               :: 1
+KHR_MAINTENANCE_8_EXTENSION_NAME                             :: "VK_KHR_maintenance8"
+KHR_video_maintenance2                                       :: 1
+KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION                         :: 1
+KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME                       :: "VK_KHR_video_maintenance2"
+KHR_depth_clamp_zero_one                                     :: 1
+KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION                        :: 1
+KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME                      :: "VK_KHR_depth_clamp_zero_one"
+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                               :: 2
+NVX_BINARY_IMPORT_EXTENSION_NAME                             :: "VK_NVX_binary_import"
+NVX_image_view_handle                                        :: 1
+NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION                           :: 3
+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                            :: 3
+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_pipeline_robustness                                      :: 1
+EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION                         :: 1
+EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME                       :: "VK_EXT_pipeline_robustness"
+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_ARRAY_2_SPEC_VERSION                             :: 1
+NV_VIEWPORT_ARRAY_2_EXTENSION_NAME                           :: "VK_NV_viewport_array2"
+NV_VIEWPORT_ARRAY2_SPEC_VERSION                              :: NV_VIEWPORT_ARRAY_2_SPEC_VERSION
+NV_VIEWPORT_ARRAY2_EXTENSION_NAME                            :: NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
+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                          :: 2
+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                       :: 5
+EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME                     :: "VK_EXT_swapchain_colorspace"
+EXT_hdr_metadata                                             :: 1
+EXT_HDR_METADATA_SPEC_VERSION                                :: 3
+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"
+QUEUE_FAMILY_FOREIGN_EXT                                     :: 2
+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                   :: 2
+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"
+SHADER_UNUSED_KHR                                            :: ~u32(0)
+SHADER_UNUSED_NV                                             :: SHADER_UNUSED_KHR
+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                            :: 2
+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                        :: 2
+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_FUNCTIONALITY_1_SPEC_VERSION                     :: 1
+GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME                   :: "VK_GOOGLE_hlsl_functionality1"
+GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION                      :: GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
+GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME                    :: GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
+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                         :: 6
+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_host_image_copy                                          :: 1
+EXT_HOST_IMAGE_COPY_SPEC_VERSION                             :: 1
+EXT_HOST_IMAGE_COPY_EXTENSION_NAME                           :: "VK_EXT_host_image_copy"
+EXT_map_memory_placed                                        :: 1
+EXT_MAP_MEMORY_PLACED_SPEC_VERSION                           :: 1
+EXT_MAP_MEMORY_PLACED_EXTENSION_NAME                         :: "VK_EXT_map_memory_placed"
+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_surface_maintenance1                                     :: 1
+EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION                       :: 1
+EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME                     :: "VK_EXT_surface_maintenance1"
+EXT_swapchain_maintenance1                                   :: 1
+EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION                     :: 1
+EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME                   :: "VK_EXT_swapchain_maintenance1"
+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_depth_bias_control                                       :: 1
+EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION                          :: 1
+EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME                        :: "VK_EXT_depth_bias_control"
+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"
+NV_present_barrier                                           :: 1
+NV_PRESENT_BARRIER_SPEC_VERSION                              :: 1
+NV_PRESENT_BARRIER_EXTENSION_NAME                            :: "VK_NV_present_barrier"
+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                    :: 2
+NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME                  :: "VK_NV_device_diagnostics_config"
+NV_cuda_kernel_launch                                        :: 1
+NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION                           :: 2
+NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME                         :: "VK_NV_cuda_kernel_launch"
+NV_low_latency                                               :: 1
+NV_LOW_LATENCY_SPEC_VERSION                                  :: 1
+NV_LOW_LATENCY_EXTENSION_NAME                                :: "VK_NV_low_latency"
+EXT_descriptor_buffer                                        :: 1
+EXT_DESCRIPTOR_BUFFER_SPEC_VERSION                           :: 1
+EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME                         :: "VK_EXT_descriptor_buffer"
+EXT_graphics_pipeline_library                                :: 1
+EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION                   :: 1
+EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME                 :: "VK_EXT_graphics_pipeline_library"
+AMD_shader_early_and_late_fragment_tests                     :: 1
+AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION        :: 1
+AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME      :: "VK_AMD_shader_early_and_late_fragment_tests"
+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_image_compression_control                                :: 1
+EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION                   :: 1
+EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME                 :: "VK_EXT_image_compression_control"
+EXT_attachment_feedback_loop_layout                          :: 1
+EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION             :: 2
+EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME           :: "VK_EXT_attachment_feedback_loop_layout"
+EXT_4444_formats                                             :: 1
+EXT_4444_FORMATS_SPEC_VERSION                                :: 1
+EXT_4444_FORMATS_EXTENSION_NAME                              :: "VK_EXT_4444_formats"
+EXT_device_fault                                             :: 1
+EXT_DEVICE_FAULT_SPEC_VERSION                                :: 2
+EXT_DEVICE_FAULT_EXTENSION_NAME                              :: "VK_EXT_device_fault"
+EXT_rgba10x6_formats                                         :: 1
+EXT_RGBA10X6_FORMATS_SPEC_VERSION                            :: 1
+EXT_RGBA10X6_FORMATS_EXTENSION_NAME                          :: "VK_EXT_rgba10x6_formats"
+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"
+EXT_device_address_binding_report                            :: 1
+EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION               :: 1
+EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME             :: "VK_EXT_device_address_binding_report"
+EXT_depth_clip_control                                       :: 1
+EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION                          :: 1
+EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME                        :: "VK_EXT_depth_clip_control"
+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"
+EXT_present_mode_fifo_latest_ready                           :: 1
+EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION              :: 1
+EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME            :: "VK_EXT_present_mode_fifo_latest_ready"
+NV_external_memory_rdma                                      :: 1
+NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION                         :: 1
+NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME                       :: "VK_NV_external_memory_rdma"
+EXT_pipeline_properties                                      :: 1
+EXT_PIPELINE_PROPERTIES_SPEC_VERSION                         :: 1
+EXT_PIPELINE_PROPERTIES_EXTENSION_NAME                       :: "VK_EXT_pipeline_properties"
+EXT_frame_boundary                                           :: 1
+EXT_FRAME_BOUNDARY_SPEC_VERSION                              :: 1
+EXT_FRAME_BOUNDARY_EXTENSION_NAME                            :: "VK_EXT_frame_boundary"
+EXT_multisampled_render_to_single_sampled                    :: 1
+EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION       :: 1
+EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME     :: "VK_EXT_multisampled_render_to_single_sampled"
+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_primitives_generated_query                               :: 1
+EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION                  :: 1
+EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME                :: "VK_EXT_primitives_generated_query"
+EXT_global_priority_query                                    :: 1
+EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION                       :: 1
+EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME                     :: "VK_EXT_global_priority_query"
+MAX_GLOBAL_PRIORITY_SIZE_EXT                                 :: MAX_GLOBAL_PRIORITY_SIZE
+EXT_image_view_min_lod                                       :: 1
+EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION                          :: 1
+EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME                        :: "VK_EXT_image_view_min_lod"
+EXT_multi_draw                                               :: 1
+EXT_MULTI_DRAW_SPEC_VERSION                                  :: 1
+EXT_MULTI_DRAW_EXTENSION_NAME                                :: "VK_EXT_multi_draw"
+EXT_image_2d_view_of_3d                                      :: 1
+EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION                         :: 1
+EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME                       :: "VK_EXT_image_2d_view_of_3d"
+EXT_shader_tile_image                                        :: 1
+EXT_SHADER_TILE_IMAGE_SPEC_VERSION                           :: 1
+EXT_SHADER_TILE_IMAGE_EXTENSION_NAME                         :: "VK_EXT_shader_tile_image"
+EXT_opacity_micromap                                         :: 1
+EXT_OPACITY_MICROMAP_SPEC_VERSION                            :: 2
+EXT_OPACITY_MICROMAP_EXTENSION_NAME                          :: "VK_EXT_opacity_micromap"
+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_border_color_swizzle                                     :: 1
+EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION                        :: 1
+EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME                      :: "VK_EXT_border_color_swizzle"
+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"
+EXT_image_sliced_view_of_3d                                  :: 1
+EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION                     :: 1
+EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME                   :: "VK_EXT_image_sliced_view_of_3d"
+REMAINING_3D_SLICES_EXT                                      :: ~u32(0)
+EXT_depth_clamp_zero_one                                     :: 1
+EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION                        :: 1
+EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME                      :: "VK_EXT_depth_clamp_zero_one"
+EXT_non_seamless_cube_map                                    :: 1
+EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION                       :: 1
+EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME                     :: "VK_EXT_non_seamless_cube_map"
+NV_copy_memory_indirect                                      :: 1
+NV_COPY_MEMORY_INDIRECT_SPEC_VERSION                         :: 1
+NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME                       :: "VK_NV_copy_memory_indirect"
+NV_memory_decompression                                      :: 1
+NV_MEMORY_DECOMPRESSION_SPEC_VERSION                         :: 1
+NV_MEMORY_DECOMPRESSION_EXTENSION_NAME                       :: "VK_NV_memory_decompression"
+NV_device_generated_commands_compute                         :: 1
+NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION            :: 2
+NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME          :: "VK_NV_device_generated_commands_compute"
+NV_ray_tracing_linear_swept_spheres                          :: 1
+NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION             :: 1
+NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME           :: "VK_NV_ray_tracing_linear_swept_spheres"
+NV_linear_color_attachment                                   :: 1
+NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION                      :: 1
+NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME                    :: "VK_NV_linear_color_attachment"
+GOOGLE_surfaceless_query                                     :: 1
+GOOGLE_SURFACELESS_QUERY_SPEC_VERSION                        :: 2
+GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME                      :: "VK_GOOGLE_surfaceless_query"
+EXT_image_compression_control_swapchain                      :: 1
+EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION         :: 1
+EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME       :: "VK_EXT_image_compression_control_swapchain"
+EXT_nested_command_buffer                                    :: 1
+EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION                       :: 1
+EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME                     :: "VK_EXT_nested_command_buffer"
+EXT_external_memory_acquire_unmodified                       :: 1
+EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION          :: 1
+EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME        :: "VK_EXT_external_memory_acquire_unmodified"
+EXT_extended_dynamic_state3                                  :: 1
+EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION                    :: 2
+EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME                  :: "VK_EXT_extended_dynamic_state3"
+EXT_subpass_merge_feedback                                   :: 1
+EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION                      :: 2
+EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME                    :: "VK_EXT_subpass_merge_feedback"
+EXT_shader_module_identifier                                 :: 1
+MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT                        :: 32
+EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION                    :: 1
+EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME                  :: "VK_EXT_shader_module_identifier"
+EXT_rasterization_order_attachment_access                    :: 1
+EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION       :: 1
+EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME     :: "VK_EXT_rasterization_order_attachment_access"
+NV_optical_flow                                              :: 1
+NV_OPTICAL_FLOW_SPEC_VERSION                                 :: 1
+NV_OPTICAL_FLOW_EXTENSION_NAME                               :: "VK_NV_optical_flow"
+EXT_legacy_dithering                                         :: 1
+EXT_LEGACY_DITHERING_SPEC_VERSION                            :: 2
+EXT_LEGACY_DITHERING_EXTENSION_NAME                          :: "VK_EXT_legacy_dithering"
+EXT_pipeline_protected_access                                :: 1
+EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION                   :: 1
+EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME                 :: "VK_EXT_pipeline_protected_access"
+AMD_anti_lag                                                 :: 1
+AMD_ANTI_LAG_SPEC_VERSION                                    :: 1
+AMD_ANTI_LAG_EXTENSION_NAME                                  :: "VK_AMD_anti_lag"
+EXT_shader_object                                            :: 1
+EXT_SHADER_OBJECT_SPEC_VERSION                               :: 1
+EXT_SHADER_OBJECT_EXTENSION_NAME                             :: "VK_EXT_shader_object"
+NV_ray_tracing_invocation_reorder                            :: 1
+NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION               :: 1
+NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME             :: "VK_NV_ray_tracing_invocation_reorder"
+NV_cooperative_vector                                        :: 1
+NV_COOPERATIVE_VECTOR_SPEC_VERSION                           :: 4
+NV_COOPERATIVE_VECTOR_EXTENSION_NAME                         :: "VK_NV_cooperative_vector"
+NV_extended_sparse_address_space                             :: 1
+NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION                :: 1
+NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME              :: "VK_NV_extended_sparse_address_space"
+EXT_mutable_descriptor_type                                  :: 1
+EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION                     :: 1
+EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME                   :: "VK_EXT_mutable_descriptor_type"
+EXT_legacy_vertex_attributes                                 :: 1
+EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION                    :: 1
+EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME                  :: "VK_EXT_legacy_vertex_attributes"
+EXT_layer_settings                                           :: 1
+EXT_LAYER_SETTINGS_SPEC_VERSION                              :: 2
+EXT_LAYER_SETTINGS_EXTENSION_NAME                            :: "VK_EXT_layer_settings"
+EXT_pipeline_library_group_handles                           :: 1
+EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION              :: 1
+EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME            :: "VK_EXT_pipeline_library_group_handles"
+EXT_dynamic_rendering_unused_attachments                     :: 1
+EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION        :: 1
+EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME      :: "VK_EXT_dynamic_rendering_unused_attachments"
+NV_low_latency2                                              :: 1
+NV_LOW_LATENCY_2_SPEC_VERSION                                :: 2
+NV_LOW_LATENCY_2_EXTENSION_NAME                              :: "VK_NV_low_latency2"
+NV_per_stage_descriptor_set                                  :: 1
+NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION                     :: 1
+NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME                   :: "VK_NV_per_stage_descriptor_set"
+EXT_attachment_feedback_loop_dynamic_state                   :: 1
+EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION      :: 1
+EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME    :: "VK_EXT_attachment_feedback_loop_dynamic_state"
+NV_descriptor_pool_overallocation                            :: 1
+NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION               :: 1
+NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME             :: "VK_NV_descriptor_pool_overallocation"
+NV_display_stereo                                            :: 1
+NV_DISPLAY_STEREO_SPEC_VERSION                               :: 1
+NV_DISPLAY_STEREO_EXTENSION_NAME                             :: "VK_NV_display_stereo"
+NV_raw_access_chains                                         :: 1
+NV_RAW_ACCESS_CHAINS_SPEC_VERSION                            :: 1
+NV_RAW_ACCESS_CHAINS_EXTENSION_NAME                          :: "VK_NV_raw_access_chains"
+NV_command_buffer_inheritance                                :: 1
+NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION                   :: 1
+NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME                 :: "VK_NV_command_buffer_inheritance"
+NV_shader_atomic_float16_vector                              :: 1
+NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION                 :: 1
+NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME               :: "VK_NV_shader_atomic_float16_vector"
+EXT_shader_replicated_composites                             :: 1
+EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION                :: 1
+EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME              :: "VK_EXT_shader_replicated_composites"
+NV_ray_tracing_validation                                    :: 1
+NV_RAY_TRACING_VALIDATION_SPEC_VERSION                       :: 1
+NV_RAY_TRACING_VALIDATION_EXTENSION_NAME                     :: "VK_NV_ray_tracing_validation"
+NV_cluster_acceleration_structure                            :: 1
+NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION               :: 2
+NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME             :: "VK_NV_cluster_acceleration_structure"
+NV_partitioned_acceleration_structure                        :: 1
+NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION           :: 1
+NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME         :: "VK_NV_partitioned_acceleration_structure"
+PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV :: ~u32(0)
+EXT_device_generated_commands                                :: 1
+EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION                   :: 1
+EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME                 :: "VK_EXT_device_generated_commands"
+EXT_depth_clamp_control                                      :: 1
+EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION                         :: 1
+EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME                       :: "VK_EXT_depth_clamp_control"
+NV_cooperative_matrix2                                       :: 1
+NV_COOPERATIVE_MATRIX_2_SPEC_VERSION                         :: 1
+NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME                       :: "VK_NV_cooperative_matrix2"
+EXT_vertex_attribute_robustness                              :: 1
+EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION                 :: 1
+EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME               :: "VK_EXT_vertex_attribute_robustness"
+NV_present_metering                                          :: 1
+NV_PRESENT_METERING_SPEC_VERSION                             :: 1
+NV_PRESENT_METERING_EXTENSION_NAME                           :: "VK_NV_present_metering"
+KHR_acceleration_structure                                   :: 1
+KHR_ACCELERATION_STRUCTURE_SPEC_VERSION                      :: 13
+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"
+EXT_mesh_shader                                              :: 1
+EXT_MESH_SHADER_SPEC_VERSION                                 :: 1
+EXT_MESH_SHADER_EXTENSION_NAME                               :: "VK_EXT_mesh_shader"
+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"
+NV_acquire_winrt_display                                     :: 1
+NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION                        :: 1
+NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME                      :: "VK_NV_acquire_winrt_display"
+EXT_metal_surface                                            :: 1
+EXT_METAL_SURFACE_SPEC_VERSION                               :: 1
+EXT_METAL_SURFACE_EXTENSION_NAME                             :: "VK_EXT_metal_surface"
+EXT_metal_objects                                            :: 1
+EXT_METAL_OBJECTS_SPEC_VERSION                               :: 2
+EXT_METAL_OBJECTS_EXTENSION_NAME                             :: "VK_EXT_metal_objects"
+EXT_external_memory_metal                                    :: 1
+EXT_EXTERNAL_MEMORY_METAL_SPEC_VERSION                       :: 1
+EXT_EXTERNAL_MEMORY_METAL_EXTENSION_NAME                     :: "VK_EXT_external_memory_metal"
+KHR_wayland_surface                                          :: 1
+KHR_WAYLAND_SURFACE_SPEC_VERSION                             :: 6
+KHR_WAYLAND_SURFACE_EXTENSION_NAME                           :: "VK_KHR_wayland_surface"
+KHR_xlib_surface                                             :: 1
+KHR_XLIB_SURFACE_SPEC_VERSION                                :: 6
+KHR_XLIB_SURFACE_EXTENSION_NAME                              :: "VK_KHR_xlib_surface"
+KHR_xcb_surface                                              :: 1
+KHR_XCB_SURFACE_SPEC_VERSION                                 :: 6
+KHR_XCB_SURFACE_EXTENSION_NAME                               :: "VK_KHR_xcb_surface"
+KHR_portability_subset                                       :: 1
+KHR_PORTABILITY_SUBSET_SPEC_VERSION                          :: 1
+KHR_PORTABILITY_SUBSET_EXTENSION_NAME                        :: "VK_KHR_portability_subset"
+AMDX_shader_enqueue                                          :: 1
+AMDX_SHADER_ENQUEUE_SPEC_VERSION                             :: 2
+AMDX_SHADER_ENQUEUE_EXTENSION_NAME                           :: "VK_AMDX_shader_enqueue"
+NV_displacement_micromap                                     :: 1
+NV_DISPLACEMENT_MICROMAP_SPEC_VERSION                        :: 2
+NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME                      :: "VK_NV_displacement_micromap"
 
 
 // Handles types
 // Handles types
 Instance       :: distinct Handle
 Instance       :: distinct Handle