replace vk.Bool32 with enum

This commit is contained in:
Robin Voetter
2025-08-26 22:59:59 +02:00
parent 8322c9593f
commit 571c59180d
4 changed files with 46 additions and 26 deletions

View File

@@ -253,7 +253,7 @@ fn allocateQueues(instance: Instance, pdev: vk.PhysicalDevice, allocator: Alloca
graphics_family = family; graphics_family = family;
} }
if (present_family == null and (try instance.getPhysicalDeviceSurfaceSupportKHR(pdev, family, surface)) == vk.TRUE) { if (present_family == null and (try instance.getPhysicalDeviceSurfaceSupportKHR(pdev, family, surface)) == .true) {
present_family = family; present_family = family;
} }
} }

View File

@@ -60,7 +60,7 @@ pub const Swapchain = struct {
.pre_transform = caps.current_transform, .pre_transform = caps.current_transform,
.composite_alpha = .{ .opaque_bit_khr = true }, .composite_alpha = .{ .opaque_bit_khr = true },
.present_mode = present_mode, .present_mode = present_mode,
.clipped = vk.TRUE, .clipped = .true,
.old_swapchain = old_handle, .old_swapchain = old_handle,
}, null) catch { }, null) catch {
return error.SwapchainCreationFailed; return error.SwapchainCreationFailed;
@@ -261,7 +261,7 @@ const SwapImage = struct {
} }
fn waitForFence(self: SwapImage, gc: *const GraphicsContext) !void { fn waitForFence(self: SwapImage, gc: *const GraphicsContext) !void {
_ = try gc.dev.waitForFences(1, @ptrCast(&self.frame_fence), vk.TRUE, std.math.maxInt(u64)); _ = try gc.dev.waitForFences(1, @ptrCast(&self.frame_fence), .true, std.math.maxInt(u64));
} }
}; };

View File

@@ -414,7 +414,7 @@ fn createPipeline(
const piasci = vk.PipelineInputAssemblyStateCreateInfo{ const piasci = vk.PipelineInputAssemblyStateCreateInfo{
.topology = .triangle_list, .topology = .triangle_list,
.primitive_restart_enable = vk.FALSE, .primitive_restart_enable = .false,
}; };
const pvsci = vk.PipelineViewportStateCreateInfo{ const pvsci = vk.PipelineViewportStateCreateInfo{
@@ -425,12 +425,12 @@ fn createPipeline(
}; };
const prsci = vk.PipelineRasterizationStateCreateInfo{ const prsci = vk.PipelineRasterizationStateCreateInfo{
.depth_clamp_enable = vk.FALSE, .depth_clamp_enable = .false,
.rasterizer_discard_enable = vk.FALSE, .rasterizer_discard_enable = .false,
.polygon_mode = .fill, .polygon_mode = .fill,
.cull_mode = .{ .back_bit = true }, .cull_mode = .{ .back_bit = true },
.front_face = .clockwise, .front_face = .clockwise,
.depth_bias_enable = vk.FALSE, .depth_bias_enable = .false,
.depth_bias_constant_factor = 0, .depth_bias_constant_factor = 0,
.depth_bias_clamp = 0, .depth_bias_clamp = 0,
.depth_bias_slope_factor = 0, .depth_bias_slope_factor = 0,
@@ -439,14 +439,14 @@ fn createPipeline(
const pmsci = vk.PipelineMultisampleStateCreateInfo{ const pmsci = vk.PipelineMultisampleStateCreateInfo{
.rasterization_samples = .{ .@"1_bit" = true }, .rasterization_samples = .{ .@"1_bit" = true },
.sample_shading_enable = vk.FALSE, .sample_shading_enable = .false,
.min_sample_shading = 1, .min_sample_shading = 1,
.alpha_to_coverage_enable = vk.FALSE, .alpha_to_coverage_enable = .false,
.alpha_to_one_enable = vk.FALSE, .alpha_to_one_enable = .false,
}; };
const pcbas = vk.PipelineColorBlendAttachmentState{ const pcbas = vk.PipelineColorBlendAttachmentState{
.blend_enable = vk.FALSE, .blend_enable = .false,
.src_color_blend_factor = .one, .src_color_blend_factor = .one,
.dst_color_blend_factor = .zero, .dst_color_blend_factor = .zero,
.color_blend_op = .add, .color_blend_op = .add,
@@ -457,7 +457,7 @@ fn createPipeline(
}; };
const pcbsci = vk.PipelineColorBlendStateCreateInfo{ const pcbsci = vk.PipelineColorBlendStateCreateInfo{
.logic_op_enable = vk.FALSE, .logic_op_enable = .false,
.logic_op = .copy, .logic_op = .copy,
.attachment_count = 1, .attachment_count = 1,
.p_attachments = @ptrCast(&pcbas), .p_attachments = @ptrCast(&pcbas),

View File

@@ -848,6 +848,10 @@ const Renderer = struct {
} }
fn renderDecl(self: *Self, decl: reg.Declaration) !void { fn renderDecl(self: *Self, decl: reg.Declaration) !void {
if (try self.renderSpecial(decl.name)) {
return;
}
switch (decl.decl_type) { switch (decl.decl_type) {
.container => |container| try self.renderContainer(decl.name, container), .container => |container| try self.renderContainer(decl.name, container),
.enumeration => |enumeration| try self.renderEnumeration(decl.name, enumeration), .enumeration => |enumeration| try self.renderEnumeration(decl.name, enumeration),
@@ -861,10 +865,27 @@ const Renderer = struct {
} }
} }
fn renderSpecialContainer(self: *Self, name: []const u8) !bool { fn renderAssign(self: *Self, name: []const u8) !void {
try self.writer.writeAll("pub const ");
try self.renderName(name);
try self.writer.writeAll(" = ");
}
fn renderSpecial(self: *Self, name: []const u8) !bool {
const maybe_author = self.id_renderer.getAuthorTag(name); const maybe_author = self.id_renderer.getAuthorTag(name);
const basename = self.id_renderer.stripAuthorTag(name); const basename = self.id_renderer.stripAuthorTag(name);
if (std.mem.eql(u8, basename, "VkAccelerationStructureInstance")) { if (std.mem.eql(u8, basename, "VkBool32")) {
try self.renderAssign(name);
try self.writer.writeAll(
\\enum(i32) {
\\ false,
\\ true,
\\ _,
\\};
\\
);
} else if (std.mem.eql(u8, basename, "VkAccelerationStructureInstance")) {
try self.renderAssign(name);
try self.writer.print( try self.writer.print(
\\extern struct {{ \\extern struct {{
\\ transform: TransformMatrix{s}, \\ transform: TransformMatrix{s},
@@ -882,8 +903,8 @@ const Renderer = struct {
, ,
.{maybe_author orelse ""}, .{maybe_author orelse ""},
); );
return true;
} else if (std.mem.eql(u8, basename, "VkAccelerationStructureSRTMotionInstance")) { } else if (std.mem.eql(u8, basename, "VkAccelerationStructureSRTMotionInstance")) {
try self.renderAssign(name);
try self.writer.print( try self.writer.print(
\\extern struct {{ \\extern struct {{
\\ transform_t0: SRTData{0s}, \\ transform_t0: SRTData{0s},
@@ -902,8 +923,8 @@ const Renderer = struct {
, ,
.{maybe_author orelse ""}, .{maybe_author orelse ""},
); );
return true;
} else if (std.mem.eql(u8, basename, "VkAccelerationStructureMatrixMotionInstance")) { } else if (std.mem.eql(u8, basename, "VkAccelerationStructureMatrixMotionInstance")) {
try self.renderAssign(name);
try self.writer.print( try self.writer.print(
\\extern struct {{ \\extern struct {{
\\ transform_t0: TransformMatrix{0s}, \\ transform_t0: TransformMatrix{0s},
@@ -922,8 +943,8 @@ const Renderer = struct {
, ,
.{maybe_author orelse ""}, .{maybe_author orelse ""},
); );
return true;
} else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureBuildTriangleClusterInfo")) { } else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureBuildTriangleClusterInfo")) {
try self.renderAssign(name);
try self.writer.print( try self.writer.print(
\\extern struct {{ \\extern struct {{
\\ cluster_id: u32, \\ cluster_id: u32,
@@ -949,8 +970,8 @@ const Renderer = struct {
, ,
.{maybe_author orelse ""}, .{maybe_author orelse ""},
); );
return true;
} else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureBuildTriangleClusterTemplateInfo")) { } else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureBuildTriangleClusterTemplateInfo")) {
try self.renderAssign(name);
try self.writer.print( try self.writer.print(
\\extern struct {{ \\extern struct {{
\\ cluster_id: u32, \\ cluster_id: u32,
@@ -977,8 +998,8 @@ const Renderer = struct {
, ,
.{maybe_author orelse ""}, .{maybe_author orelse ""},
); );
return true;
} else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureInstantiateClusterInfo")) { } else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureInstantiateClusterInfo")) {
try self.renderAssign(name);
try self.writer.print( try self.writer.print(
\\extern struct {{ \\extern struct {{
\\ cluster_id_offset: u32, \\ cluster_id_offset: u32,
@@ -992,10 +1013,11 @@ const Renderer = struct {
, ,
.{maybe_author orelse ""}, .{maybe_author orelse ""},
); );
return true; } else {
return false;
} }
return false; return true;
} }
fn renderSimpleBitContainer(self: *Self, container: reg.Container) !bool { fn renderSimpleBitContainer(self: *Self, container: reg.Container) !bool {
@@ -1051,10 +1073,6 @@ const Renderer = struct {
return; return;
} }
if (try self.renderSpecialContainer(name)) {
return;
}
for (container.fields) |field| { for (container.fields) |field| {
if (field.bits != null) { if (field.bits != null) {
return error.UnhandledBitfieldStruct; return error.UnhandledBitfieldStruct;
@@ -1109,7 +1127,7 @@ const Renderer = struct {
try self.writer.writeAll(" = ."); try self.writer.writeAll(" = .");
try self.writeIdentifierWithCase(.snake, stype["VK_STRUCTURE_TYPE_".len..]); try self.writeIdentifierWithCase(.snake, stype["VK_STRUCTURE_TYPE_".len..]);
} else if (field.field_type == .name and mem.eql(u8, "VkBool32", field.field_type.name) and isFeatureStruct(name, container.extends)) { } else if (field.field_type == .name and mem.eql(u8, "VkBool32", field.field_type.name) and isFeatureStruct(name, container.extends)) {
try self.writer.writeAll(" = FALSE"); try self.writer.writeAll(" = .false");
} else if (field.is_optional) { } else if (field.is_optional) {
if (field.field_type == .name) { if (field.field_type == .name) {
const field_type_name = field.field_type.name; const field_type_name = field.field_type.name;
@@ -1120,6 +1138,8 @@ const Renderer = struct {
try self.writer.writeAll(" = .{}"); try self.writer.writeAll(" = .{}");
} else if (decl_type == .typedef and decl_type.typedef == .command_ptr) { } else if (decl_type == .typedef and decl_type.typedef == .command_ptr) {
try self.writer.writeAll(" = null"); try self.writer.writeAll(" = null");
} else if (mem.eql(u8, "VkBool32", field.field_type.name)) {
try self.writer.writeAll(" = .false");
} else if ((decl_type == .typedef and builtin_types.has(decl_type.typedef.name)) or } else if ((decl_type == .typedef and builtin_types.has(decl_type.typedef.name)) or
(decl_type == .foreign and builtin_types.has(field_type_name))) (decl_type == .foreign and builtin_types.has(field_type_name)))
{ {