mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-02 20:58:15 +00:00
Update vulkan generator tool
This commit is contained in:
+68
-73
@@ -163,12 +163,12 @@ def parse_handles_def(f):
|
||||
|
||||
max_len = max(len(h) for h in handles)
|
||||
for h in handles:
|
||||
f.write("{} :: distinct Handle;\n".format(h.ljust(max_len)))
|
||||
f.write("{} :: distinct Handle\n".format(h.ljust(max_len)))
|
||||
|
||||
handles_non_dispatchable = [h for h in re.findall(r"VK_DEFINE_NON_DISPATCHABLE_HANDLE\(Vk(\w+)\)", src, re.S)]
|
||||
max_len = max(len(h) for h in handles_non_dispatchable)
|
||||
for h in handles_non_dispatchable:
|
||||
f.write("{} :: distinct NonDispatchableHandle;\n".format(h.ljust(max_len)))
|
||||
f.write("{} :: distinct NonDispatchableHandle\n".format(h.ljust(max_len)))
|
||||
|
||||
|
||||
flags_defs = set()
|
||||
@@ -222,7 +222,7 @@ def fix_enum_value(value, prefix, suffix, is_flag_bit):
|
||||
return token
|
||||
|
||||
def parse_constants(f):
|
||||
f.write("// General Constants\n");
|
||||
f.write("// General Constants\n")
|
||||
all_data = re.findall(r"#define VK_(\w+)\s*(.*?)U?\n", src, re.S)
|
||||
allowed_names = (
|
||||
"HEADER_VERSION",
|
||||
@@ -232,13 +232,13 @@ def parse_constants(f):
|
||||
allowed_data = [nv for nv in all_data if nv[0] in allowed_names]
|
||||
max_len = max(len(name) for name, value in allowed_data)
|
||||
for name, value in allowed_data:
|
||||
f.write("{}{} :: {};\n".format(name, "".rjust(max_len-len(name)), value))
|
||||
f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
|
||||
|
||||
f.write("\n// Vendor Constants\n");
|
||||
f.write("\n// Vendor Constants\n")
|
||||
data = re.findall(r"#define VK_((?:"+'|'.join(ext_suffixes)+r")\w+)\s*(.*?)\n", src, re.S)
|
||||
max_len = max(len(name) for name, value in data)
|
||||
for name, value in data:
|
||||
f.write("{}{} :: {};\n".format(name, "".rjust(max_len-len(name)), value))
|
||||
f.write("{}{} :: {}\n".format(name, "".rjust(max_len-len(name)), value))
|
||||
f.write("\n")
|
||||
|
||||
|
||||
@@ -258,7 +258,7 @@ def parse_enums(f):
|
||||
flags_name = enum_name.replace("FlagBits", "Flags")
|
||||
enum_name = enum_name.replace("FlagBits", "Flag")
|
||||
generated_flags.add(flags_name)
|
||||
f.write("{} :: distinct bit_set[{}; Flags];\n".format(flags_name, enum_name))
|
||||
f.write("{} :: distinct bit_set[{}; Flags]\n".format(flags_name, enum_name))
|
||||
|
||||
|
||||
if is_flag_bit:
|
||||
@@ -344,9 +344,9 @@ def parse_enums(f):
|
||||
used_flags.append('.'+flags[i])
|
||||
else:
|
||||
used_flags.append('{}({})'.format(enum_name, i))
|
||||
s = "{enum_name}s_{n} :: {enum_name}s{{".format(enum_name=enum_name, n=n);
|
||||
s = "{enum_name}s_{n} :: {enum_name}s{{".format(enum_name=enum_name, n=n)
|
||||
s += ', '.join(used_flags)
|
||||
s += "};\n"
|
||||
s += "}\n"
|
||||
f.write(s)
|
||||
|
||||
if len(groups) > 0:
|
||||
@@ -358,8 +358,8 @@ def parse_enums(f):
|
||||
max_len = max(len(flag) for flag in unused_flags)
|
||||
for flag in unused_flags:
|
||||
flag_name = flag.replace("Flags", "Flag")
|
||||
f.write("{} :: distinct bit_set[{}; Flags];\n".format(flag.ljust(max_len), flag_name))
|
||||
f.write("{} :: enum u32 {{}};\n".format(flag_name.ljust(max_len)))
|
||||
f.write("{} :: distinct bit_set[{}; Flags]\n".format(flag.ljust(max_len), flag_name))
|
||||
f.write("{} :: enum u32 {{}}\n".format(flag_name.ljust(max_len)))
|
||||
|
||||
|
||||
|
||||
@@ -410,7 +410,7 @@ def parse_structs(f):
|
||||
max_len = max([len(n) for n, _ in aliases] + [0])
|
||||
for n, t in aliases:
|
||||
k = max_len
|
||||
f.write("{} :: {};\n".format(n.ljust(k), t))
|
||||
f.write("{} :: {}\n".format(n.ljust(k), t))
|
||||
|
||||
|
||||
|
||||
@@ -437,13 +437,8 @@ def parse_procedures(f):
|
||||
max_len = max(len(n) for n, t in ff)
|
||||
|
||||
f.write("// Procedure Types\n\n");
|
||||
f.write("when ODIN_OS == \"windows\" {\n");
|
||||
for n, t in ff:
|
||||
f.write("\t{} :: #type {};\n".format(n.ljust(max_len), t.replace('"c"', '"stdcall"')))
|
||||
f.write("} else {\n");
|
||||
for n, t in ff:
|
||||
f.write("\t{} :: #type {};\n".format(n.ljust(max_len), t))
|
||||
f.write("}\n\n");
|
||||
f.write("{} :: #type {}\n".format(n.ljust(max_len), t.replace('"c"', '"system"')))
|
||||
|
||||
def group_functions(f):
|
||||
data = re.findall(r"typedef (\w+\*?) \(\w+ \*(\w+)\)\((.+?)\);", src, re.S)
|
||||
@@ -471,7 +466,7 @@ def group_functions(f):
|
||||
max_len = max(len(name) for name, _ in group_lines)
|
||||
for name, vk_name in group_lines:
|
||||
type_str = procedure_map[vk_name]
|
||||
f.write('{}: {};\n'.format(remove_prefix(name, "Proc"), name.rjust(max_len)))
|
||||
f.write('{}: {}\n'.format(remove_prefix(name, "Proc"), name.rjust(max_len)))
|
||||
f.write("\n")
|
||||
|
||||
f.write("load_proc_addresses :: proc(set_proc_address: SetProcAddressType) {\n")
|
||||
@@ -480,7 +475,7 @@ def group_functions(f):
|
||||
max_len = max(len(name) for name, _ in group_lines)
|
||||
for name, vk_name in group_lines:
|
||||
k = max_len - len(name)
|
||||
f.write('\tset_proc_address(&{}, {}"vk{}");\n'.format(
|
||||
f.write('\tset_proc_address(&{}, {}"vk{}")\n'.format(
|
||||
remove_prefix(name, 'Proc'),
|
||||
"".ljust(k),
|
||||
remove_prefix(vk_name, 'Proc'),
|
||||
@@ -503,54 +498,54 @@ import "core:c"
|
||||
with open("../core.odin", 'w', encoding='utf-8') as f:
|
||||
f.write(BASE)
|
||||
f.write("""
|
||||
API_VERSION_1_0 :: (1<<22) | (0<<12) | (0);
|
||||
API_VERSION_1_0 :: (1<<22) | (0<<12) | (0)
|
||||
|
||||
MAKE_VERSION :: proc(major, minor, patch: u32) -> u32 {
|
||||
return (major<<22) | (minor<<12) | (patch);
|
||||
return (major<<22) | (minor<<12) | (patch)
|
||||
}
|
||||
|
||||
// Base types
|
||||
Flags :: distinct u32;
|
||||
Flags64 :: distinct u64;
|
||||
DeviceSize :: distinct u64;
|
||||
DeviceAddress :: distinct u64;
|
||||
SampleMask :: distinct u32;
|
||||
Flags :: distinct u32
|
||||
Flags64 :: distinct u64
|
||||
DeviceSize :: distinct u64
|
||||
DeviceAddress :: distinct u64
|
||||
SampleMask :: distinct u32
|
||||
|
||||
Handle :: distinct rawptr;
|
||||
NonDispatchableHandle :: distinct u64;
|
||||
Handle :: distinct rawptr
|
||||
NonDispatchableHandle :: distinct u64
|
||||
|
||||
SetProcAddressType :: #type proc(p: rawptr, name: cstring);
|
||||
SetProcAddressType :: #type proc(p: rawptr, name: cstring)
|
||||
|
||||
|
||||
cstring_array :: ^cstring; // Helper Type
|
||||
cstring_array :: ^cstring // Helper Type
|
||||
|
||||
RemoteAddressNV :: distinct rawptr; // Declared inline before MemoryGetRemoteAddressInfoNV
|
||||
RemoteAddressNV :: distinct rawptr // Declared inline before MemoryGetRemoteAddressInfoNV
|
||||
|
||||
// Base constants
|
||||
LOD_CLAMP_NONE :: 1000.0;
|
||||
REMAINING_MIP_LEVELS :: ~u32(0);
|
||||
REMAINING_ARRAY_LAYERS :: ~u32(0);
|
||||
WHOLE_SIZE :: ~u64(0);
|
||||
ATTACHMENT_UNUSED :: ~u32(0);
|
||||
TRUE :: 1;
|
||||
FALSE :: 0;
|
||||
QUEUE_FAMILY_IGNORED :: ~u32(0);
|
||||
SUBPASS_EXTERNAL :: ~u32(0);
|
||||
MAX_PHYSICAL_DEVICE_NAME_SIZE :: 256;
|
||||
UUID_SIZE :: 16;
|
||||
MAX_MEMORY_TYPES :: 32;
|
||||
MAX_MEMORY_HEAPS :: 16;
|
||||
MAX_EXTENSION_NAME_SIZE :: 256;
|
||||
MAX_DESCRIPTION_SIZE :: 256;
|
||||
MAX_DEVICE_GROUP_SIZE_KHX :: 32;
|
||||
MAX_DEVICE_GROUP_SIZE :: 32;
|
||||
LUID_SIZE_KHX :: 8;
|
||||
LUID_SIZE_KHR :: 8;
|
||||
LUID_SIZE :: 8;
|
||||
MAX_DRIVER_NAME_SIZE_KHR :: 256;
|
||||
MAX_DRIVER_INFO_SIZE_KHR :: 256;
|
||||
MAX_QUEUE_FAMILY_EXTERNAL :: ~u32(0)-1;
|
||||
MAX_GLOBAL_PRIORITY_SIZE_EXT :: 16;
|
||||
LOD_CLAMP_NONE :: 1000.0
|
||||
REMAINING_MIP_LEVELS :: ~u32(0)
|
||||
REMAINING_ARRAY_LAYERS :: ~u32(0)
|
||||
WHOLE_SIZE :: ~u64(0)
|
||||
ATTACHMENT_UNUSED :: ~u32(0)
|
||||
TRUE :: 1
|
||||
FALSE :: 0
|
||||
QUEUE_FAMILY_IGNORED :: ~u32(0)
|
||||
SUBPASS_EXTERNAL :: ~u32(0)
|
||||
MAX_PHYSICAL_DEVICE_NAME_SIZE :: 256
|
||||
UUID_SIZE :: 16
|
||||
MAX_MEMORY_TYPES :: 32
|
||||
MAX_MEMORY_HEAPS :: 16
|
||||
MAX_EXTENSION_NAME_SIZE :: 256
|
||||
MAX_DESCRIPTION_SIZE :: 256
|
||||
MAX_DEVICE_GROUP_SIZE_KHX :: 32
|
||||
MAX_DEVICE_GROUP_SIZE :: 32
|
||||
LUID_SIZE_KHX :: 8
|
||||
LUID_SIZE_KHR :: 8
|
||||
LUID_SIZE :: 8
|
||||
MAX_DRIVER_NAME_SIZE_KHR :: 256
|
||||
MAX_DRIVER_INFO_SIZE_KHR :: 256
|
||||
MAX_QUEUE_FAMILY_EXTERNAL :: ~u32(0)-1
|
||||
MAX_GLOBAL_PRIORITY_SIZE_EXT :: 16
|
||||
|
||||
"""[1::])
|
||||
parse_constants(f)
|
||||
@@ -568,24 +563,24 @@ MAX_GLOBAL_PRIORITY_SIZE_EXT :: 16;
|
||||
when ODIN_OS == "windows" {
|
||||
\timport win32 "core:sys/windows"
|
||||
|
||||
\tHINSTANCE :: win32.HINSTANCE;
|
||||
\tHWND :: win32.HWND;
|
||||
\tHMONITOR :: win32.HMONITOR;
|
||||
\tHANDLE :: win32.HANDLE;
|
||||
\tLPCWSTR :: win32.LPCWSTR;
|
||||
\tSECURITY_ATTRIBUTES :: win32.SECURITY_ATTRIBUTES;
|
||||
\tDWORD :: win32.DWORD;
|
||||
\tLONG :: win32.LONG;
|
||||
\tLUID :: win32.LUID;
|
||||
\tHINSTANCE :: win32.HINSTANCE
|
||||
\tHWND :: win32.HWND
|
||||
\tHMONITOR :: win32.HMONITOR
|
||||
\tHANDLE :: win32.HANDLE
|
||||
\tLPCWSTR :: win32.LPCWSTR
|
||||
\tSECURITY_ATTRIBUTES :: win32.SECURITY_ATTRIBUTES
|
||||
\tDWORD :: win32.DWORD
|
||||
\tLONG :: win32.LONG
|
||||
\tLUID :: win32.LUID
|
||||
} else {
|
||||
\tHINSTANCE :: distinct rawptr;
|
||||
\tHWND :: distinct rawptr;
|
||||
\tHMONITOR :: distinct rawptr;
|
||||
\tHANDLE :: distinct rawptr;
|
||||
\tLPCWSTR :: ^u16;
|
||||
\tSECURITY_ATTRIBUTES :: struct {};
|
||||
\tDWORD :: u32;
|
||||
\tLONG :: c.long;
|
||||
\tHINSTANCE :: distinct rawptr
|
||||
\tHWND :: distinct rawptr
|
||||
\tHMONITOR :: distinct rawptr
|
||||
\tHANDLE :: distinct rawptr
|
||||
\tLPCWSTR :: ^u16
|
||||
\tSECURITY_ATTRIBUTES :: struct {}
|
||||
\tDWORD :: u32
|
||||
\tLONG :: c.long
|
||||
\tLUID :: struct {
|
||||
\t\tLowPart: DWORD,
|
||||
\t\tHighPart: LONG,
|
||||
|
||||
Vendored
+82
-5
@@ -72,7 +72,7 @@ extern "C" {
|
||||
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
|
||||
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 189
|
||||
#define VK_HEADER_VERSION 191
|
||||
|
||||
// Complete version of this file
|
||||
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
|
||||
@@ -754,6 +754,8 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
|
||||
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
|
||||
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
|
||||
@@ -824,6 +826,7 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
|
||||
VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
|
||||
VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
|
||||
VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
|
||||
VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
|
||||
@@ -843,6 +846,7 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
|
||||
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
|
||||
@@ -2125,10 +2129,6 @@ typedef enum VkImageViewCreateFlagBits {
|
||||
VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkImageViewCreateFlagBits;
|
||||
typedef VkFlags VkImageViewCreateFlags;
|
||||
|
||||
typedef enum VkShaderModuleCreateFlagBits {
|
||||
VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkShaderModuleCreateFlagBits;
|
||||
typedef VkFlags VkShaderModuleCreateFlags;
|
||||
|
||||
typedef enum VkPipelineCacheCreateFlagBits {
|
||||
@@ -7867,6 +7867,52 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR
|
||||
#endif
|
||||
|
||||
|
||||
#define VK_KHR_shader_integer_dot_product 1
|
||||
#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
|
||||
#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
|
||||
typedef struct VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 shaderIntegerDotProduct;
|
||||
} VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
|
||||
|
||||
typedef struct VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 integerDotProduct8BitUnsignedAccelerated;
|
||||
VkBool32 integerDotProduct8BitSignedAccelerated;
|
||||
VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
|
||||
VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
|
||||
VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProduct16BitUnsignedAccelerated;
|
||||
VkBool32 integerDotProduct16BitSignedAccelerated;
|
||||
VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProduct32BitUnsignedAccelerated;
|
||||
VkBool32 integerDotProduct32BitSignedAccelerated;
|
||||
VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProduct64BitUnsignedAccelerated;
|
||||
VkBool32 integerDotProduct64BitSignedAccelerated;
|
||||
VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
|
||||
VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
|
||||
} VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
|
||||
|
||||
|
||||
|
||||
#define VK_KHR_pipeline_library 1
|
||||
#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
|
||||
#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
|
||||
@@ -12454,6 +12500,18 @@ typedef struct VkPhysicalDeviceDrmPropertiesEXT {
|
||||
|
||||
|
||||
|
||||
#define VK_EXT_primitive_topology_list_restart 1
|
||||
#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
|
||||
#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
|
||||
typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 primitiveTopologyListRestart;
|
||||
VkBool32 primitiveTopologyPatchListRestart;
|
||||
} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
|
||||
|
||||
|
||||
|
||||
#define VK_HUAWEI_subpass_shading 1
|
||||
#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
|
||||
#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
|
||||
@@ -12675,6 +12733,25 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
|
||||
#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
|
||||
|
||||
|
||||
#define VK_EXT_pageable_device_local_memory 1
|
||||
#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
|
||||
#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
|
||||
typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 pageableDeviceLocalMemory;
|
||||
} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
|
||||
VkDevice device,
|
||||
VkDeviceMemory memory,
|
||||
float priority);
|
||||
#endif
|
||||
|
||||
|
||||
#define VK_KHR_acceleration_structure 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
|
||||
#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 12
|
||||
|
||||
Reference in New Issue
Block a user