diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2023-07-02 18:24:37 +0200 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2023-07-02 18:24:37 +0200 |
| commit | 5e99ff6769ba6463ca68f0e5c6f83ad35208b622 (patch) | |
| tree | f376edd20d4f27be81b2ab13c796f3ca3a946c03 /vendor/vulkan | |
| parent | 1ecb4aa9aaa7344fe03a5e253fe19d0ca6abedd3 (diff) | |
Add support FlagBits2
Diffstat (limited to 'vendor/vulkan')
| -rw-r--r-- | vendor/vulkan/_gen/create_vulkan_odin_wrapper.py | 99 | ||||
| -rw-r--r-- | vendor/vulkan/enums.odin | 218 | ||||
| -rw-r--r-- | vendor/vulkan/structs.odin | 6 |
3 files changed, 317 insertions, 6 deletions
diff --git a/vendor/vulkan/_gen/create_vulkan_odin_wrapper.py b/vendor/vulkan/_gen/create_vulkan_odin_wrapper.py index 26bfc0a82..942f212dc 100644 --- a/vendor/vulkan/_gen/create_vulkan_odin_wrapper.py +++ b/vendor/vulkan/_gen/create_vulkan_odin_wrapper.py @@ -429,6 +429,100 @@ def parse_enums(f): 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))) +def parse_fake_enums(f): + data = re.findall(r"static const Vk(\w+FlagBits2) VK_(\w+?) = (\w+);", src, re.S) + + data.sort(key=lambda x: x[0]) + + + + fake_enums = {} + + for type_name, name, value in data: + if type_name in fake_enums: + fake_enums[type_name].append((name,value)) + else: + fake_enums[type_name] = [(name, value)] + + + + for name in fake_enums.keys(): + flags_name = name.replace("FlagBits", "Flags") + enum_name = name.replace("FlagBits", "Flag") + f.write("{} :: distinct bit_set[{}; Flags64]\n".format(flags_name, enum_name)) + f.write("{} :: enum Flags64 {{\n".format(name.replace("FlagBits", "Flag"))) + + prefix = to_snake_case(name).upper() + suffix = None + for ext in ext_suffixes: + prefix_new = remove_suffix(prefix, "_"+ext) + assert suffix is None + if prefix_new != prefix: + suffix = "_"+ext + prefix = prefix_new + break + + + prefix = prefix.replace("_FLAG_BITS2", "_2") + prefix += "_" + + ff = [] + + groups = [] + flags = {} + + names_and_values = fake_enums[name] + + for name, value in names_and_values: + value = value.replace("ULL", "") + n = fix_enum_name(name, prefix, suffix, True) + try: + v = fix_enum_value(value, prefix, suffix, True) + except FlagError as e: + v = int(str(e)) + groups.append((n, v)) + continue + except IgnoreFlagError as e: + groups.append((n, 0)) + continue + + if n == v: + continue + try: + flags[int(v)] = n + except ValueError as e: + pass + + if v == "NONE": + continue + + ff.append((n, v)) + + max_flag_value = max([int(v) for n, v in ff if is_int(v)] + [0]) + max_group_value = max([int(v) for n, v in groups if is_int(v)] + [0]) + if max_flag_value < max_group_value: + if (1<<max_flag_value)+1 < max_group_value: + ff.append(('_MAX', 31)) + flags[31] = '_MAX' + pass + + max_len = max([len(n) for n, v in ff] + [0]) + + flag_names = set([n for n, v in ff]) + + for n, v in ff: + if not is_int(v) and v not in flag_names: + print("Ignoring", n, "=", v) + continue + f.write("\t{} = {},".format(n.ljust(max_len), v)) + if n == "_MAX": + f.write(" // Needed for the *_ALL bit set") + f.write("\n") + + f.write("}\n\n") + + + def parse_structs(f): @@ -490,6 +584,10 @@ def parse_structs(f): continue name = name.replace("FlagBits", "Flag") _type = _type.replace("FlagBits", "Flag") + + if name.endswith("Flag2") or name.endswith("Flags2"): + continue + aliases.append((name, _type)) max_len = max([len(n) for n, _ in aliases] + [0]) @@ -732,6 +830,7 @@ with open("../enums.odin", 'w', encoding='utf-8') as f: f.write(BASE) f.write("\n") parse_enums(f) + parse_fake_enums(f) f.write("\n\n") with open("../structs.odin", 'w', encoding='utf-8') as f: f.write(BASE) diff --git a/vendor/vulkan/enums.odin b/vendor/vulkan/enums.odin index 8efcf541c..06da3c38e 100644 --- a/vendor/vulkan/enums.odin +++ b/vendor/vulkan/enums.odin @@ -3825,5 +3825,223 @@ WaylandSurfaceCreateFlagsKHR :: distinct bit_set[Wayland WaylandSurfaceCreateFlagKHR :: enum u32 {}
Win32SurfaceCreateFlagsKHR :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags]
Win32SurfaceCreateFlagKHR :: enum u32 {}
+AccessFlags2 :: distinct bit_set[AccessFlag2; Flags64]
+AccessFlag2 :: enum Flags64 {
+ INDIRECT_COMMAND_READ = 0,
+ INDIRECT_COMMAND_READ_KHR = 0,
+ INDEX_READ = 1,
+ INDEX_READ_KHR = 1,
+ VERTEX_ATTRIBUTE_READ = 2,
+ VERTEX_ATTRIBUTE_READ_KHR = 2,
+ UNIFORM_READ = 3,
+ UNIFORM_READ_KHR = 3,
+ INPUT_ATTACHMENT_READ = 4,
+ INPUT_ATTACHMENT_READ_KHR = 4,
+ SHADER_READ = 5,
+ SHADER_READ_KHR = 5,
+ SHADER_WRITE = 6,
+ SHADER_WRITE_KHR = 6,
+ COLOR_ATTACHMENT_READ = 7,
+ COLOR_ATTACHMENT_READ_KHR = 7,
+ COLOR_ATTACHMENT_WRITE = 8,
+ COLOR_ATTACHMENT_WRITE_KHR = 8,
+ DEPTH_STENCIL_ATTACHMENT_READ = 9,
+ DEPTH_STENCIL_ATTACHMENT_READ_KHR = 9,
+ DEPTH_STENCIL_ATTACHMENT_WRITE = 10,
+ DEPTH_STENCIL_ATTACHMENT_WRITE_KHR = 10,
+ TRANSFER_READ = 11,
+ TRANSFER_READ_KHR = 11,
+ TRANSFER_WRITE = 12,
+ TRANSFER_WRITE_KHR = 12,
+ HOST_READ = 13,
+ HOST_READ_KHR = 13,
+ HOST_WRITE = 14,
+ HOST_WRITE_KHR = 14,
+ MEMORY_READ = 15,
+ MEMORY_READ_KHR = 15,
+ MEMORY_WRITE = 16,
+ MEMORY_WRITE_KHR = 16,
+ SHADER_SAMPLED_READ = 32,
+ SHADER_SAMPLED_READ_KHR = 32,
+ SHADER_STORAGE_READ = 33,
+ SHADER_STORAGE_READ_KHR = 33,
+ SHADER_STORAGE_WRITE = 34,
+ SHADER_STORAGE_WRITE_KHR = 34,
+ VIDEO_DECODE_READ_KHR = 35,
+ VIDEO_DECODE_WRITE_KHR = 36,
+ VIDEO_ENCODE_READ_KHR = 37,
+ VIDEO_ENCODE_WRITE_KHR = 38,
+ TRANSFORM_FEEDBACK_WRITE_EXT = 25,
+ TRANSFORM_FEEDBACK_COUNTER_READ_EXT = 26,
+ TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT = 27,
+ CONDITIONAL_RENDERING_READ_EXT = 20,
+ COMMAND_PREPROCESS_READ_NV = 17,
+ COMMAND_PREPROCESS_WRITE_NV = 18,
+ FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR = 23,
+ SHADING_RATE_IMAGE_READ_NV = 23,
+ ACCELERATION_STRUCTURE_READ_KHR = 21,
+ ACCELERATION_STRUCTURE_WRITE_KHR = 22,
+ ACCELERATION_STRUCTURE_READ_NV = 21,
+ ACCELERATION_STRUCTURE_WRITE_NV = 22,
+ FRAGMENT_DENSITY_MAP_READ_EXT = 24,
+ COLOR_ATTACHMENT_READ_NONCOHERENT_EXT = 19,
+ DESCRIPTOR_BUFFER_READ_EXT = 41,
+ INVOCATION_MASK_READ_HUAWEI = 39,
+ SHADER_BINDING_TABLE_READ_KHR = 40,
+ MICROMAP_READ_EXT = 44,
+ MICROMAP_WRITE_EXT = 45,
+ OPTICAL_FLOW_READ_NV = 42,
+ OPTICAL_FLOW_WRITE_NV = 43,
+}
+
+FormatFeatureFlags2 :: distinct bit_set[FormatFeatureFlag2; Flags64]
+FormatFeatureFlag2 :: enum Flags64 {
+ SAMPLED_IMAGE = 0,
+ SAMPLED_IMAGE_KHR = 0,
+ STORAGE_IMAGE = 1,
+ STORAGE_IMAGE_KHR = 1,
+ STORAGE_IMAGE_ATOMIC = 2,
+ STORAGE_IMAGE_ATOMIC_KHR = 2,
+ UNIFORM_TEXEL_BUFFER = 3,
+ UNIFORM_TEXEL_BUFFER_KHR = 3,
+ STORAGE_TEXEL_BUFFER = 4,
+ STORAGE_TEXEL_BUFFER_KHR = 4,
+ STORAGE_TEXEL_BUFFER_ATOMIC = 5,
+ STORAGE_TEXEL_BUFFER_ATOMIC_KHR = 5,
+ VERTEX_BUFFER = 6,
+ VERTEX_BUFFER_KHR = 6,
+ COLOR_ATTACHMENT = 7,
+ COLOR_ATTACHMENT_KHR = 7,
+ COLOR_ATTACHMENT_BLEND = 8,
+ COLOR_ATTACHMENT_BLEND_KHR = 8,
+ DEPTH_STENCIL_ATTACHMENT = 9,
+ DEPTH_STENCIL_ATTACHMENT_KHR = 9,
+ BLIT_SRC = 10,
+ BLIT_SRC_KHR = 10,
+ BLIT_DST = 11,
+ BLIT_DST_KHR = 11,
+ SAMPLED_IMAGE_FILTER_LINEAR = 12,
+ SAMPLED_IMAGE_FILTER_LINEAR_KHR = 12,
+ SAMPLED_IMAGE_FILTER_CUBIC = 13,
+ SAMPLED_IMAGE_FILTER_CUBIC_EXT = 13,
+ TRANSFER_SRC = 14,
+ TRANSFER_SRC_KHR = 14,
+ TRANSFER_DST = 15,
+ TRANSFER_DST_KHR = 15,
+ SAMPLED_IMAGE_FILTER_MINMAX = 16,
+ SAMPLED_IMAGE_FILTER_MINMAX_KHR = 16,
+ MIDPOINT_CHROMA_SAMPLES = 17,
+ MIDPOINT_CHROMA_SAMPLES_KHR = 17,
+ SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER = 18,
+ SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR = 18,
+ SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER = 19,
+ SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR = 19,
+ SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT = 20,
+ SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR = 20,
+ SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE = 21,
+ SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR = 21,
+ DISJOINT = 22,
+ DISJOINT_KHR = 22,
+ COSITED_CHROMA_SAMPLES = 23,
+ COSITED_CHROMA_SAMPLES_KHR = 23,
+ STORAGE_READ_WITHOUT_FORMAT = 31,
+ STORAGE_READ_WITHOUT_FORMAT_KHR = 31,
+ STORAGE_WRITE_WITHOUT_FORMAT = 32,
+ STORAGE_WRITE_WITHOUT_FORMAT_KHR = 32,
+ SAMPLED_IMAGE_DEPTH_COMPARISON = 33,
+ SAMPLED_IMAGE_DEPTH_COMPARISON_KHR = 33,
+ VIDEO_DECODE_OUTPUT_KHR = 25,
+ VIDEO_DECODE_DPB_KHR = 26,
+ ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR = 29,
+ FRAGMENT_DENSITY_MAP_EXT = 24,
+ FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 30,
+ VIDEO_ENCODE_INPUT_KHR = 27,
+ VIDEO_ENCODE_DPB_KHR = 28,
+ LINEAR_COLOR_ATTACHMENT_NV = 38,
+ WEIGHT_IMAGE_QCOM = 34,
+ WEIGHT_SAMPLED_IMAGE_QCOM = 35,
+ BLOCK_MATCHING_QCOM = 36,
+ BOX_FILTER_SAMPLED_QCOM = 37,
+ OPTICAL_FLOW_IMAGE_NV = 40,
+ OPTICAL_FLOW_VECTOR_NV = 41,
+ OPTICAL_FLOW_COST_NV = 42,
+}
+
+PipelineStageFlags2 :: distinct bit_set[PipelineStageFlag2; Flags64]
+PipelineStageFlag2 :: enum Flags64 {
+ TOP_OF_PIPE = 0,
+ TOP_OF_PIPE_KHR = 0,
+ DRAW_INDIRECT = 1,
+ DRAW_INDIRECT_KHR = 1,
+ VERTEX_INPUT = 2,
+ VERTEX_INPUT_KHR = 2,
+ VERTEX_SHADER = 3,
+ VERTEX_SHADER_KHR = 3,
+ TESSELLATION_CONTROL_SHADER = 4,
+ TESSELLATION_CONTROL_SHADER_KHR = 4,
+ TESSELLATION_EVALUATION_SHADER = 5,
+ TESSELLATION_EVALUATION_SHADER_KHR = 5,
+ GEOMETRY_SHADER = 6,
+ GEOMETRY_SHADER_KHR = 6,
+ FRAGMENT_SHADER = 7,
+ FRAGMENT_SHADER_KHR = 7,
+ EARLY_FRAGMENT_TESTS = 8,
+ EARLY_FRAGMENT_TESTS_KHR = 8,
+ LATE_FRAGMENT_TESTS = 9,
+ LATE_FRAGMENT_TESTS_KHR = 9,
+ COLOR_ATTACHMENT_OUTPUT = 10,
+ COLOR_ATTACHMENT_OUTPUT_KHR = 10,
+ COMPUTE_SHADER = 11,
+ COMPUTE_SHADER_KHR = 11,
+ ALL_TRANSFER = 12,
+ ALL_TRANSFER_KHR = 12,
+ TRANSFER = 12,
+ TRANSFER_KHR = 12,
+ BOTTOM_OF_PIPE = 13,
+ BOTTOM_OF_PIPE_KHR = 13,
+ HOST = 14,
+ HOST_KHR = 14,
+ ALL_GRAPHICS = 15,
+ ALL_GRAPHICS_KHR = 15,
+ ALL_COMMANDS = 16,
+ ALL_COMMANDS_KHR = 16,
+ COPY = 32,
+ COPY_KHR = 32,
+ RESOLVE = 33,
+ RESOLVE_KHR = 33,
+ BLIT = 34,
+ BLIT_KHR = 34,
+ CLEAR = 35,
+ CLEAR_KHR = 35,
+ INDEX_INPUT = 36,
+ INDEX_INPUT_KHR = 36,
+ VERTEX_ATTRIBUTE_INPUT = 37,
+ VERTEX_ATTRIBUTE_INPUT_KHR = 37,
+ PRE_RASTERIZATION_SHADERS = 38,
+ PRE_RASTERIZATION_SHADERS_KHR = 38,
+ VIDEO_DECODE_KHR = 26,
+ VIDEO_ENCODE_KHR = 27,
+ TRANSFORM_FEEDBACK_EXT = 24,
+ CONDITIONAL_RENDERING_EXT = 18,
+ COMMAND_PREPROCESS_NV = 17,
+ FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 22,
+ SHADING_RATE_IMAGE_NV = 22,
+ ACCELERATION_STRUCTURE_BUILD_KHR = 25,
+ RAY_TRACING_SHADER_KHR = 21,
+ RAY_TRACING_SHADER_NV = 21,
+ ACCELERATION_STRUCTURE_BUILD_NV = 25,
+ FRAGMENT_DENSITY_PROCESS_EXT = 23,
+ TASK_SHADER_NV = 19,
+ MESH_SHADER_NV = 20,
+ TASK_SHADER_EXT = 19,
+ MESH_SHADER_EXT = 20,
+ SUBPASS_SHADING_HUAWEI = 39,
+ INVOCATION_MASK_HUAWEI = 40,
+ ACCELERATION_STRUCTURE_COPY_KHR = 28,
+ MICROMAP_BUILD_EXT = 30,
+ CLUSTER_CULLING_SHADER_HUAWEI = 41,
+ OPTICAL_FLOW_NV = 29,
+}
+
diff --git a/vendor/vulkan/structs.odin b/vendor/vulkan/structs.odin index 5d3231ccc..b04c90203 100644 --- a/vendor/vulkan/structs.odin +++ b/vendor/vulkan/structs.odin @@ -7406,12 +7406,6 @@ IOSurfaceRef :: struct {} // Opaque struct defined by Appleās CoreGraphics fra // Aliases
PhysicalDeviceVariablePointerFeatures :: PhysicalDeviceVariablePointersFeatures
PhysicalDeviceShaderDrawParameterFeatures :: PhysicalDeviceShaderDrawParametersFeatures
-PipelineStageFlags2 :: Flags64
-PipelineStageFlag2 :: Flags64
-AccessFlags2 :: Flags64
-AccessFlag2 :: Flags64
-FormatFeatureFlags2 :: Flags64
-FormatFeatureFlag2 :: Flags64
RenderingFlagsKHR :: RenderingFlags
RenderingFlagKHR :: RenderingFlag
RenderingInfoKHR :: RenderingInfo
|