From 711bc082113a6497734214dc859307710fd5c632 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Thu, 8 Apr 2021 13:02:07 +0200 Subject: [PATCH] Stop fixing up bitmasks. This seems to not be required anymore. --- generator/vulkan/generator.zig | 29 ----------------------------- generator/vulkan/parse.zig | 2 +- 2 files changed, 1 insertion(+), 30 deletions(-) diff --git a/generator/vulkan/generator.zig b/generator/vulkan/generator.zig index 5d57779..32e5179 100644 --- a/generator/vulkan/generator.zig +++ b/generator/vulkan/generator.zig @@ -140,34 +140,6 @@ pub const Generator = struct { return tagless[0 .. tagless.len - "Flags".len]; } - fn fixupBitmasks(self: *Generator) !void { - var bits = std.StringHashMap([]const u8).init(self.gpa); - defer bits.deinit(); - - for (self.registry.decls) |decl| { - if (decl.decl_type == .enumeration and decl.decl_type.enumeration.is_bitmask) { - try bits.put(self.stripFlagBits(decl.name), decl.name); - } - } - - for (self.registry.decls) |*decl| { - switch (decl.decl_type) { - .bitmask => |*bitmask| { - const base_name = self.stripFlags(decl.name); - - if (bitmask.bits_enum) |bits_enum| { - if (bits.get(base_name) == null) { - bitmask.bits_enum = null; - } - } else if (bits.get(base_name)) |bits_enum| { - bitmask.bits_enum = bits_enum; - } - }, - else => {} - } - } - } - // Solve `registry.declarations` according to `registry.extensions` and `registry.features`. fn mergeEnumFields(self: *Generator) !void { var merger = EnumFieldMerger.init(self.gpa, &self.reg_arena.allocator, &self.registry); @@ -198,6 +170,5 @@ pub fn generate(allocator: *Allocator, spec_xml: []const u8, writer: anytype) !v defer gen.deinit(); try gen.mergeEnumFields(); - try gen.fixupBitmasks(); try gen.render(writer); } diff --git a/generator/vulkan/parse.zig b/generator/vulkan/parse.zig index 3d16d6e..84bc68c 100644 --- a/generator/vulkan/parse.zig +++ b/generator/vulkan/parse.zig @@ -119,7 +119,7 @@ fn parseBitmaskType(ty: *xml.Element) !registry.Declaration { return registry.Declaration{ .name = ty.getCharData("name") orelse return error.InvalidRegistry, .decl_type = .{.bitmask = .{ - .bits_enum = ty.getAttribute("requires"), + .bits_enum = ty.getAttribute("requires") orelse ty.getAttribute("bitvalues"), // Who knows why these are different fields .bitwidth = bitwidth, }}, };