diff --git a/gpu/src/command_encoder.zig b/gpu/src/command_encoder.zig index 165f265c..fe8e2555 100644 --- a/gpu/src/command_encoder.zig +++ b/gpu/src/command_encoder.zig @@ -11,10 +11,16 @@ const ImageCopyBuffer = @import("types.zig").ImageCopyBuffer; const ImageCopyTexture = @import("types.zig").ImageCopyTexture; const Extent3D = @import("types.zig").Extent3D; const Impl = @import("interface.zig").Impl; +const dawn = @import("dawn.zig"); pub const CommandEncoder = opaque { pub const Descriptor = extern struct { - next_in_chain: ?*const ChainedStruct = null, + pub const NextInChain = extern union { + generic: ?*const ChainedStruct, + dawn_encoder_internal_usage_descriptor: *const dawn.EncoderInternalUsageDescriptor, + }; + + next_in_chain: NextInChain = .{ .generic = null }, label: ?[*:0]const u8 = null, }; diff --git a/gpu/src/dawn.zig b/gpu/src/dawn.zig index 33438109..f90bdca9 100644 --- a/gpu/src/dawn.zig +++ b/gpu/src/dawn.zig @@ -7,7 +7,6 @@ pub const CacheDeviceDescriptor = extern struct { isolation_key: [*:0]const u8 = "", }; -/// TODO: Can be chained in gpu.CommandEncoder.Descriptor pub const EncoderInternalUsageDescriptor = extern struct { chain: ChainedStruct = .{ .next = null, .s_type = .dawn_encoder_internal_usage_descriptor }, use_internal_usages: bool = false,