From e9e506720bd317212d2c6d26c89f21ff3e1f5703 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Tue, 16 Aug 2022 20:54:03 -0700 Subject: [PATCH] gpu: add type-safety for chaining dawn.EncoderInternalUsageDescriptor Signed-off-by: Stephen Gutekanst --- gpu/src/command_encoder.zig | 8 +++++++- gpu/src/dawn.zig | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) 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,