diff --git a/gpu/src/ComputePassEncoder.zig b/gpu/src/ComputePassEncoder.zig index f490a2e4..c24329a6 100644 --- a/gpu/src/ComputePassEncoder.zig +++ b/gpu/src/ComputePassEncoder.zig @@ -20,7 +20,7 @@ pub const VTable = struct { insertDebugMarker: fn (ptr: *anyopaque, marker_label: [*:0]const u8) void, popDebugGroup: fn (ptr: *anyopaque) void, pushDebugGroup: fn (ptr: *anyopaque, group_label: [*:0]const u8) void, - setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: ?[]u32) void, + setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: ?[]const u32) void, setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void, setPipeline: fn (ptr: *anyopaque, pipeline: ComputePipeline) void, writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void, @@ -71,7 +71,7 @@ pub inline fn setBindGroup( enc: ComputePassEncoder, group_index: u32, group: BindGroup, - dynamic_offsets: ?[]u32, + dynamic_offsets: ?[]const u32, ) void { enc.vtable.setBindGroup(enc.ptr, group_index, group, dynamic_offsets); } diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index a58acdb1..c3318037 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -1308,14 +1308,14 @@ const render_pass_encoder_vtable = RenderPassEncoder.VTable{ ptr: *anyopaque, group_index: u32, group: BindGroup, - dynamic_offsets: []const u32, + dynamic_offsets: ?[]const u32, ) void { c.wgpuRenderPassEncoderSetBindGroup( @ptrCast(c.WGPURenderPassEncoder, ptr), group_index, @ptrCast(c.WGPUBindGroup, group.ptr), - @intCast(u32, dynamic_offsets.len), - dynamic_offsets.ptr, + if (dynamic_offsets) |d| @intCast(u32, d.len) else 0, + if (dynamic_offsets) |d| d.ptr else null, ); } }).setBindGroup, @@ -1505,14 +1505,14 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{ ptr: *anyopaque, group_index: u32, group: BindGroup, - dynamic_offsets: []const u32, + dynamic_offsets: ?[]const u32, ) void { c.wgpuRenderBundleEncoderSetBindGroup( @ptrCast(c.WGPURenderBundleEncoder, ptr), group_index, @ptrCast(c.WGPUBindGroup, group.ptr), - @intCast(u32, dynamic_offsets.len), - dynamic_offsets.ptr, + if (dynamic_offsets) |d| @intCast(u32, d.len) else 0, + if (dynamic_offsets) |d| d.ptr else null, ); } }).setBindGroup, diff --git a/gpu/src/RenderBundleEncoder.zig b/gpu/src/RenderBundleEncoder.zig index 3486dcd1..15567592 100644 --- a/gpu/src/RenderBundleEncoder.zig +++ b/gpu/src/RenderBundleEncoder.zig @@ -36,7 +36,7 @@ pub const VTable = struct { insertDebugMarker: fn (ptr: *anyopaque, marker_label: [*:0]const u8) void, popDebugGroup: fn (ptr: *anyopaque) void, pushDebugGroup: fn (ptr: *anyopaque, group_label: [*:0]const u8) void, - setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: []u32) void, + setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: ?[]const u32) void, setIndexBuffer: fn (ptr: *anyopaque, buffer: Buffer, format: IndexFormat, offset: u64, size: u64) void, setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void, setPipeline: fn (ptr: *anyopaque, pipeline: RenderPipeline) void, @@ -100,7 +100,7 @@ pub inline fn setBindGroup( enc: RenderBundleEncoder, group_index: u32, group: BindGroup, - dynamic_offsets: []u32, + dynamic_offsets: ?[]const u32, ) void { enc.vtable.setBindGroup(enc.ptr, group_index, group, dynamic_offsets); } diff --git a/gpu/src/RenderPassEncoder.zig b/gpu/src/RenderPassEncoder.zig index 22d5c02e..9c9e1496 100644 --- a/gpu/src/RenderPassEncoder.zig +++ b/gpu/src/RenderPassEncoder.zig @@ -37,7 +37,7 @@ pub const VTable = struct { insertDebugMarker: fn (ptr: *anyopaque, marker_label: [*:0]const u8) void, popDebugGroup: fn (ptr: *anyopaque) void, pushDebugGroup: fn (ptr: *anyopaque, group_label: [*:0]const u8) void, - setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: []const u32) void, + setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: ?[]const u32) void, setBlendConstant: fn (ptr: *anyopaque, color: *const Color) void, setIndexBuffer: fn (ptr: *anyopaque, buffer: Buffer, format: IndexFormat, offset: u64, size: u64) void, setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void, @@ -118,7 +118,7 @@ pub inline fn setBindGroup( pass: RenderPassEncoder, group_index: u32, group: BindGroup, - dynamic_offsets: []const u32, + dynamic_offsets: ?[]const u32, ) void { pass.vtable.setBindGroup(pass.ptr, group_index, group, dynamic_offsets); }