@@ -19,10 +19,10 @@ pub fn FlagsMixin(comptime FlagsType: type) type {
1919 return struct {
2020 pub const IntType = @typeInfo(FlagsType).Struct.backing_integer.?;
2121 pub fn toInt(self: FlagsType) IntType {
22- return @as(IntType, @ bitCast(self) );
22+ return @bitCast(self);
2323 }
2424 pub fn fromInt(flags: IntType) FlagsType {
25- return @as(FlagsType, @ bitCast(flags) );
25+ return @bitCast(flags);
2626 }
2727 pub fn merge(lhs: FlagsType, rhs: FlagsType) FlagsType {
2828 return fromInt(toInt(lhs) | toInt(rhs));
@@ -39,22 +39,49 @@ pub fn FlagsMixin(comptime FlagsType: type) type {
3939 pub fn contains(lhs: FlagsType, rhs: FlagsType) bool {
4040 return toInt(intersect(lhs, rhs)) == toInt(rhs);
4141 }
42+ pub usingnamespace FlagFormatMixin(FlagsType);
43+ };
44+ }
45+ fn FlagFormatMixin(comptime FlagsType: type) type {
46+ return struct {
47+ pub fn format(
48+ self: FlagsType,
49+ comptime _: []const u8,
50+ _: std.fmt.FormatOptions,
51+ writer: anytype,
52+ ) !void {
53+ try writer.writeAll(@typeName(FlagsType) ++ "{");
54+ var first = true;
55+ inline for (comptime std.meta.fieldNames(FlagsType)) |name| {
56+ if (name[0] == '_') continue;
57+ if (@field(self, name)) {
58+ if (first) {
59+ try writer.writeAll(" ." ++ name);
60+ first = false;
61+ } else {
62+ try writer.writeAll(", ." ++ name);
63+ }
64+ }
65+ }
66+ if (!first) try writer.writeAll(" ");
67+ try writer.writeAll("}");
68+ }
4269 };
4370}
4471pub fn makeApiVersion(variant: u3, major: u7, minor: u10, patch: u12) u32 {
4572 return (@as(u32, variant) << 29) | (@as(u32, major) << 22) | (@as(u32, minor) << 12) | patch;
4673}
4774pub fn apiVersionVariant(version: u32) u3 {
48- return @as(u3, @ truncate(version >> 29) );
75+ return @truncate(version >> 29);
4976}
5077pub fn apiVersionMajor(version: u32) u7 {
51- return @as(u7, @ truncate(version >> 22) );
78+ return @truncate(version >> 22);
5279}
5380pub fn apiVersionMinor(version: u32) u10 {
54- return @as(u10, @ truncate(version >> 12) );
81+ return @truncate(version >> 12);
5582}
5683pub fn apiVersionPatch(version: u32) u12 {
57- return @as(u12, @ truncate(version) );
84+ return @truncate(version);
5885}
5986pub const MAX_PHYSICAL_DEVICE_NAME_SIZE = 256;
6087pub const UUID_SIZE = 16;
@@ -8286,7 +8313,7 @@ pub const PfnGetDeviceQueue = *const fn (
82868313pub const PfnQueueSubmit = *const fn (
82878314 queue: Queue,
82888315 submit_count: u32,
8289- p_submits: [*]const SubmitInfo,
8316+ p_submits: ? [*]const SubmitInfo,
82908317 fence: Fence,
82918318) callconv(vulkan_call_conv) Result;
82928319pub const PfnQueueWaitIdle = *const fn (
@@ -8374,7 +8401,7 @@ pub const PfnGetPhysicalDeviceSparseImageFormatProperties = *const fn (
83748401pub const PfnQueueBindSparse = *const fn (
83758402 queue: Queue,
83768403 bind_info_count: u32,
8377- p_bind_info: [*]const BindSparseInfo,
8404+ p_bind_info: ? [*]const BindSparseInfo,
83788405 fence: Fence,
83798406) callconv(vulkan_call_conv) Result;
83808407pub const PfnCreateFence = *const fn (
@@ -8633,9 +8660,9 @@ pub const PfnFreeDescriptorSets = *const fn (
86338660pub const PfnUpdateDescriptorSets = *const fn (
86348661 device: Device,
86358662 descriptor_write_count: u32,
8636- p_descriptor_writes: [*]const WriteDescriptorSet,
8663+ p_descriptor_writes: ? [*]const WriteDescriptorSet,
86378664 descriptor_copy_count: u32,
8638- p_descriptor_copies: [*]const CopyDescriptorSet,
8665+ p_descriptor_copies: ? [*]const CopyDescriptorSet,
86398666) callconv(vulkan_call_conv) void;
86408667pub const PfnCreateFramebuffer = *const fn (
86418668 device: Device,
@@ -8761,7 +8788,7 @@ pub const PfnCmdBindDescriptorSets = *const fn (
87618788 descriptor_set_count: u32,
87628789 p_descriptor_sets: [*]const DescriptorSet,
87638790 dynamic_offset_count: u32,
8764- p_dynamic_offsets: [*]const u32,
8791+ p_dynamic_offsets: ? [*]const u32,
87658792) callconv(vulkan_call_conv) void;
87668793pub const PfnCmdBindIndexBuffer = *const fn (
87678794 command_buffer: CommandBuffer,
@@ -8921,23 +8948,23 @@ pub const PfnCmdWaitEvents = *const fn (
89218948 src_stage_mask: PipelineStageFlags,
89228949 dst_stage_mask: PipelineStageFlags,
89238950 memory_barrier_count: u32,
8924- p_memory_barriers: [*]const MemoryBarrier,
8951+ p_memory_barriers: ? [*]const MemoryBarrier,
89258952 buffer_memory_barrier_count: u32,
8926- p_buffer_memory_barriers: [*]const BufferMemoryBarrier,
8953+ p_buffer_memory_barriers: ? [*]const BufferMemoryBarrier,
89278954 image_memory_barrier_count: u32,
8928- p_image_memory_barriers: [*]const ImageMemoryBarrier,
8955+ p_image_memory_barriers: ? [*]const ImageMemoryBarrier,
89298956) callconv(vulkan_call_conv) void;
89308957pub const PfnCmdPipelineBarrier = *const fn (
89318958 command_buffer: CommandBuffer,
89328959 src_stage_mask: PipelineStageFlags,
89338960 dst_stage_mask: PipelineStageFlags,
89348961 dependency_flags: DependencyFlags,
89358962 memory_barrier_count: u32,
8936- p_memory_barriers: [*]const MemoryBarrier,
8963+ p_memory_barriers: ? [*]const MemoryBarrier,
89378964 buffer_memory_barrier_count: u32,
8938- p_buffer_memory_barriers: [*]const BufferMemoryBarrier,
8965+ p_buffer_memory_barriers: ? [*]const BufferMemoryBarrier,
89398966 image_memory_barrier_count: u32,
8940- p_image_memory_barriers: [*]const ImageMemoryBarrier,
8967+ p_image_memory_barriers: ? [*]const ImageMemoryBarrier,
89418968) callconv(vulkan_call_conv) void;
89428969pub const PfnCmdBeginQuery = *const fn (
89438970 command_buffer: CommandBuffer,
@@ -9901,14 +9928,14 @@ pub const PfnCmdBeginTransformFeedbackEXT = *const fn (
99019928 command_buffer: CommandBuffer,
99029929 first_counter_buffer: u32,
99039930 counter_buffer_count: u32,
9904- p_counter_buffers: [*]const Buffer,
9931+ p_counter_buffers: ? [*]const Buffer,
99059932 p_counter_buffer_offsets: ?[*]const DeviceSize,
99069933) callconv(vulkan_call_conv) void;
99079934pub const PfnCmdEndTransformFeedbackEXT = *const fn (
99089935 command_buffer: CommandBuffer,
99099936 first_counter_buffer: u32,
99109937 counter_buffer_count: u32,
9911- p_counter_buffers: [*]const Buffer,
9938+ p_counter_buffers: ? [*]const Buffer,
99129939 p_counter_buffer_offsets: ?[*]const DeviceSize,
99139940) callconv(vulkan_call_conv) void;
99149941pub const PfnCmdBeginQueryIndexedEXT = *const fn (
@@ -9954,7 +9981,7 @@ pub const PfnCmdSetCoarseSampleOrderNV = *const fn (
99549981 command_buffer: CommandBuffer,
99559982 sample_order_type: CoarseSampleOrderTypeNV,
99569983 custom_sample_order_count: u32,
9957- p_custom_sample_orders: [*]const CoarseSampleOrderCustomNV,
9984+ p_custom_sample_orders: ? [*]const CoarseSampleOrderCustomNV,
99589985) callconv(vulkan_call_conv) void;
99599986pub const PfnCmdDrawMeshTasksNV = *const fn (
99609987 command_buffer: CommandBuffer,
@@ -11024,6 +11051,7 @@ pub fn CommandFlagsMixin(comptime CommandFlags: type) type {
1102411051 }
1102511052 return true;
1102611053 }
11054+ pub usingnamespace FlagFormatMixin(CommandFlags);
1102711055 };
1102811056}
1102911057pub const BaseCommandFlags = packed struct {
@@ -11064,7 +11092,7 @@ pub fn BaseWrapper(comptime cmds: BaseCommandFlags) type {
1106411092 const fields_len = fields_len: {
1106511093 var fields_len: u32 = 0;
1106611094 for (@typeInfo(BaseCommandFlags).Struct.fields) |field| {
11067- fields_len += @as(u32, @ intCast(@intFromBool(@field(cmds, field.name) )));
11095+ fields_len += @intCast(@intFromBool(@field(cmds, field.name)));
1106811096 }
1106911097 break :fields_len fields_len;
1107011098 };
@@ -11086,7 +11114,7 @@ pub fn BaseWrapper(comptime cmds: BaseCommandFlags) type {
1108611114 }
1108711115 break :blk @Type(.{
1108811116 .Struct = .{
11089- .layout = .Auto ,
11117+ .layout = .auto ,
1109011118 .fields = &fields,
1109111119 .decls = &[_]std.builtin.Type.Declaration{},
1109211120 .is_tuple = false,
@@ -11096,18 +11124,18 @@ pub fn BaseWrapper(comptime cmds: BaseCommandFlags) type {
1109611124 pub fn load(loader: anytype) error{CommandLoadFailure}!Self {
1109711125 var self: Self = undefined;
1109811126 inline for (std.meta.fields(Dispatch)) |field| {
11099- const name = @as( [*:0]const u8, @ptrCast(field.name ++ "\x00") );
11127+ const name: [*:0]const u8 = @ptrCast(field.name ++ "\x00");
1110011128 const cmd_ptr = loader(Instance.null_handle, name) orelse return error.CommandLoadFailure;
11101- @field(self.dispatch, field.name) = @as(field.type, @ ptrCast(cmd_ptr) );
11129+ @field(self.dispatch, field.name) = @ptrCast(cmd_ptr);
1110211130 }
1110311131 return self;
1110411132 }
1110511133 pub fn loadNoFail(loader: anytype) Self {
1110611134 var self: Self = undefined;
1110711135 inline for (std.meta.fields(Dispatch)) |field| {
11108- const name = @as( [*:0]const u8, @ptrCast(field.name ++ "\x00") );
11136+ const name: [*:0]const u8 = @ptrCast(field.name ++ "\x00");
1110911137 const cmd_ptr = loader(Instance.null_handle, name) orelse undefined;
11110- @field(self.dispatch, field.name) = @as(field.type, @ ptrCast(cmd_ptr) );
11138+ @field(self.dispatch, field.name) = @ptrCast(cmd_ptr);
1111111139 }
1111211140 return self;
1111311141 }
@@ -11514,7 +11542,7 @@ pub fn InstanceWrapper(comptime cmds: InstanceCommandFlags) type {
1151411542 const fields_len = fields_len: {
1151511543 var fields_len: u32 = 0;
1151611544 for (@typeInfo(InstanceCommandFlags).Struct.fields) |field| {
11517- fields_len += @as(u32, @ intCast(@intFromBool(@field(cmds, field.name) )));
11545+ fields_len += @intCast(@intFromBool(@field(cmds, field.name)));
1151811546 }
1151911547 break :fields_len fields_len;
1152011548 };
@@ -11536,7 +11564,7 @@ pub fn InstanceWrapper(comptime cmds: InstanceCommandFlags) type {
1153611564 }
1153711565 break :blk @Type(.{
1153811566 .Struct = .{
11539- .layout = .Auto ,
11567+ .layout = .auto ,
1154011568 .fields = &fields,
1154111569 .decls = &[_]std.builtin.Type.Declaration{},
1154211570 .is_tuple = false,
@@ -11546,18 +11574,18 @@ pub fn InstanceWrapper(comptime cmds: InstanceCommandFlags) type {
1154611574 pub fn load(instance: Instance, loader: anytype) error{CommandLoadFailure}!Self {
1154711575 var self: Self = undefined;
1154811576 inline for (std.meta.fields(Dispatch)) |field| {
11549- const name = @as( [*:0]const u8, @ptrCast(field.name ++ "\x00") );
11577+ const name: [*:0]const u8 = @ptrCast(field.name ++ "\x00");
1155011578 const cmd_ptr = loader(instance, name) orelse return error.CommandLoadFailure;
11551- @field(self.dispatch, field.name) = @as(field.type, @ ptrCast(cmd_ptr) );
11579+ @field(self.dispatch, field.name) = @ptrCast(cmd_ptr);
1155211580 }
1155311581 return self;
1155411582 }
1155511583 pub fn loadNoFail(instance: Instance, loader: anytype) Self {
1155611584 var self: Self = undefined;
1155711585 inline for (std.meta.fields(Dispatch)) |field| {
11558- const name = @as( [*:0]const u8, @ptrCast(field.name ++ "\x00") );
11586+ const name: [*:0]const u8 = @ptrCast(field.name ++ "\x00");
1155911587 const cmd_ptr = loader(instance, name) orelse undefined;
11560- @field(self.dispatch, field.name) = @as(field.type, @ ptrCast(cmd_ptr) );
11588+ @field(self.dispatch, field.name) = @ptrCast(cmd_ptr);
1156111589 }
1156211590 return self;
1156311591 }
@@ -14297,7 +14325,7 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1429714325 const fields_len = fields_len: {
1429814326 var fields_len: u32 = 0;
1429914327 for (@typeInfo(DeviceCommandFlags).Struct.fields) |field| {
14300- fields_len += @as(u32, @ intCast(@intFromBool(@field(cmds, field.name) )));
14328+ fields_len += @intCast(@intFromBool(@field(cmds, field.name)));
1430114329 }
1430214330 break :fields_len fields_len;
1430314331 };
@@ -14319,7 +14347,7 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1431914347 }
1432014348 break :blk @Type(.{
1432114349 .Struct = .{
14322- .layout = .Auto ,
14350+ .layout = .auto ,
1432314351 .fields = &fields,
1432414352 .decls = &[_]std.builtin.Type.Declaration{},
1432514353 .is_tuple = false,
@@ -14329,18 +14357,18 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1432914357 pub fn load(device: Device, loader: anytype) error{CommandLoadFailure}!Self {
1433014358 var self: Self = undefined;
1433114359 inline for (std.meta.fields(Dispatch)) |field| {
14332- const name = @as( [*:0]const u8, @ptrCast(field.name ++ "\x00") );
14360+ const name: [*:0]const u8 = @ptrCast(field.name ++ "\x00");
1433314361 const cmd_ptr = loader(device, name) orelse return error.CommandLoadFailure;
14334- @field(self.dispatch, field.name) = @as(field.type, @ ptrCast(cmd_ptr) );
14362+ @field(self.dispatch, field.name) = @ptrCast(cmd_ptr);
1433514363 }
1433614364 return self;
1433714365 }
1433814366 pub fn loadNoFail(device: Device, loader: anytype) Self {
1433914367 var self: Self = undefined;
1434014368 inline for (std.meta.fields(Dispatch)) |field| {
14341- const name = @as( [*:0]const u8, @ptrCast(field.name ++ "\x00") );
14369+ const name: [*:0]const u8 = @ptrCast(field.name ++ "\x00");
1434214370 const cmd_ptr = loader(device, name) orelse undefined;
14343- @field(self.dispatch, field.name) = @as(field.type, @ ptrCast(cmd_ptr) );
14371+ @field(self.dispatch, field.name) = @ptrCast(cmd_ptr);
1434414372 }
1434514373 return self;
1434614374 }
@@ -14379,7 +14407,7 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1437914407 self: Self,
1438014408 queue: Queue,
1438114409 submit_count: u32,
14382- p_submits: [*]const SubmitInfo,
14410+ p_submits: ? [*]const SubmitInfo,
1438314411 fence: Fence,
1438414412 ) QueueSubmitError!void {
1438514413 const result = self.dispatch.vkQueueSubmit(
@@ -14685,7 +14713,7 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1468514713 self: Self,
1468614714 queue: Queue,
1468714715 bind_info_count: u32,
14688- p_bind_info: [*]const BindSparseInfo,
14716+ p_bind_info: ? [*]const BindSparseInfo,
1468914717 fence: Fence,
1469014718 ) QueueBindSparseError!void {
1469114719 const result = self.dispatch.vkQueueBindSparse(
@@ -15651,9 +15679,9 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1565115679 self: Self,
1565215680 device: Device,
1565315681 descriptor_write_count: u32,
15654- p_descriptor_writes: [*]const WriteDescriptorSet,
15682+ p_descriptor_writes: ? [*]const WriteDescriptorSet,
1565515683 descriptor_copy_count: u32,
15656- p_descriptor_copies: [*]const CopyDescriptorSet,
15684+ p_descriptor_copies: ? [*]const CopyDescriptorSet,
1565715685 ) void {
1565815686 self.dispatch.vkUpdateDescriptorSets(
1565915687 device,
@@ -16042,7 +16070,7 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1604216070 descriptor_set_count: u32,
1604316071 p_descriptor_sets: [*]const DescriptorSet,
1604416072 dynamic_offset_count: u32,
16045- p_dynamic_offsets: [*]const u32,
16073+ p_dynamic_offsets: ? [*]const u32,
1604616074 ) void {
1604716075 self.dispatch.vkCmdBindDescriptorSets(
1604816076 command_buffer,
@@ -16407,11 +16435,11 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1640716435 src_stage_mask: PipelineStageFlags,
1640816436 dst_stage_mask: PipelineStageFlags,
1640916437 memory_barrier_count: u32,
16410- p_memory_barriers: [*]const MemoryBarrier,
16438+ p_memory_barriers: ? [*]const MemoryBarrier,
1641116439 buffer_memory_barrier_count: u32,
16412- p_buffer_memory_barriers: [*]const BufferMemoryBarrier,
16440+ p_buffer_memory_barriers: ? [*]const BufferMemoryBarrier,
1641316441 image_memory_barrier_count: u32,
16414- p_image_memory_barriers: [*]const ImageMemoryBarrier,
16442+ p_image_memory_barriers: ? [*]const ImageMemoryBarrier,
1641516443 ) void {
1641616444 self.dispatch.vkCmdWaitEvents(
1641716445 command_buffer,
@@ -16434,11 +16462,11 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1643416462 dst_stage_mask: PipelineStageFlags,
1643516463 dependency_flags: DependencyFlags,
1643616464 memory_barrier_count: u32,
16437- p_memory_barriers: [*]const MemoryBarrier,
16465+ p_memory_barriers: ? [*]const MemoryBarrier,
1643816466 buffer_memory_barrier_count: u32,
16439- p_buffer_memory_barriers: [*]const BufferMemoryBarrier,
16467+ p_buffer_memory_barriers: ? [*]const BufferMemoryBarrier,
1644016468 image_memory_barrier_count: u32,
16441- p_image_memory_barriers: [*]const ImageMemoryBarrier,
16469+ p_image_memory_barriers: ? [*]const ImageMemoryBarrier,
1644216470 ) void {
1644316471 self.dispatch.vkCmdPipelineBarrier(
1644416472 command_buffer,
@@ -18855,7 +18883,7 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1885518883 command_buffer: CommandBuffer,
1885618884 first_counter_buffer: u32,
1885718885 counter_buffer_count: u32,
18858- p_counter_buffers: [*]const Buffer,
18886+ p_counter_buffers: ? [*]const Buffer,
1885918887 p_counter_buffer_offsets: ?[*]const DeviceSize,
1886018888 ) void {
1886118889 self.dispatch.vkCmdBeginTransformFeedbackEXT(
@@ -18871,7 +18899,7 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1887118899 command_buffer: CommandBuffer,
1887218900 first_counter_buffer: u32,
1887318901 counter_buffer_count: u32,
18874- p_counter_buffers: [*]const Buffer,
18902+ p_counter_buffers: ? [*]const Buffer,
1887518903 p_counter_buffer_offsets: ?[*]const DeviceSize,
1887618904 ) void {
1887718905 self.dispatch.vkCmdEndTransformFeedbackEXT(
@@ -18977,7 +19005,7 @@ pub fn DeviceWrapper(comptime cmds: DeviceCommandFlags) type {
1897719005 command_buffer: CommandBuffer,
1897819006 sample_order_type: CoarseSampleOrderTypeNV,
1897919007 custom_sample_order_count: u32,
18980- p_custom_sample_orders: [*]const CoarseSampleOrderCustomNV,
19008+ p_custom_sample_orders: ? [*]const CoarseSampleOrderCustomNV,
1898119009 ) void {
1898219010 self.dispatch.vkCmdSetCoarseSampleOrderNV(
1898319011 command_buffer,
0 commit comments